home *** CD-ROM | disk | FTP | other *** search
/ QuickTime 2.0 Beta / Quicktime 2.0 Beta.iso / Programming Stuff / Interfaces / QuickTime Interfaces / Movies.h < prev    next >
Encoding:
C/C++ Source or Header  |  1994-05-02  |  69.4 KB  |  1,750 lines  |  [TEXT/MPS ]

  1. /*
  2.     File:        Movies.h
  3.  
  4.     Copyright:    © 1984-1993 by Apple Computer, Inc., all rights reserved.
  5.  
  6.     WARNING
  7.     This file was auto generated by the interfacer tool. Modifications
  8.     must be made to the master file.
  9.  
  10. */
  11.  
  12. #ifndef __MOVIES__
  13. #define __MOVIES__
  14.  
  15. #ifndef __QUICKDRAW__
  16. #include <Quickdraw.h>
  17. /*    #include <Types.h>                                            */
  18. /*        #include <ConditionalMacros.h>                            */
  19. /*        #include <MixedMode.h>                                    */
  20. /*            #include <Traps.h>                                    */
  21. /*    #include <QuickdrawText.h>                                    */
  22. /*        #include <IntlResources.h>                                */
  23. #endif
  24.  
  25. #ifndef __ALIASES__
  26. #include <Aliases.h>
  27. /*    #include <AppleTalk.h>                                        */
  28. /*        #include <OSUtils.h>                                    */
  29. /*    #include <Files.h>                                            */
  30. /*        #include <SegLoad.h>                                    */
  31. #endif
  32.  
  33. #ifndef __EVENTS__
  34. #include <Events.h>
  35. #endif
  36.  
  37. #ifndef __TOOLUTILS__
  38. #include <ToolUtils.h>
  39. /*    #include <TextUtils.h>                                        */
  40. /*        #include <Script.h>                                        */
  41. /*    #include <FixMath.h>                                        */
  42. #endif
  43.  
  44. #ifndef __MENUS__
  45. #include <Menus.h>
  46. #endif
  47.  
  48. #ifndef __COMPONENTS__
  49. #include <Components.h>
  50. #endif
  51.  
  52. #ifndef __IMAGECOMPRESSION__
  53. #include <ImageCompression.h>
  54. /*    #include <QDOffscreen.h>                                    */
  55. /*    #include <StandardFile.h>                                    */
  56. /*        #include <Dialogs.h>                                    */
  57. /*            #include <Windows.h>                                */
  58. /*                #include <Controls.h>                            */
  59. /*            #include <TextEdit.h>                                */
  60. #endif
  61.  
  62. #ifndef kFix1
  63. #define kFix1 (0x00010000)
  64.  
  65. #endif
  66.  
  67. #define MovieFileType 'MooV'
  68.  
  69. #define MediaHandlerType 'mhlr'
  70.  
  71. #define DataHandlerType 'dhlr'
  72.  
  73. #define VideoMediaType 'vide'
  74.  
  75. #define SoundMediaType 'soun'
  76.  
  77. #define TextMediaType 'text'
  78.  
  79. #define BaseMediaType 'gnrc'
  80.  
  81. #define VisualMediaCharacteristic 'eyes'
  82.  
  83. #define AudioMediaCharacteristic 'ears'
  84.  
  85. #define DoTheRightThing 0L
  86.  
  87. #if defined(powerc) || defined (__powerc)
  88. #pragma options align=mac68k
  89. #endif
  90. struct MovieRecord {
  91.     long                        data[1];
  92. };
  93. #if defined(powerc) || defined(__powerc)
  94. #pragma options align=reset
  95. #endif
  96.  
  97. typedef struct MovieRecord MovieRecord;
  98.  
  99. typedef MovieRecord *Movie;
  100.  
  101. #if defined(powerc) || defined (__powerc)
  102. #pragma options align=mac68k
  103. #endif
  104. struct TrackRecord {
  105.     long                        data[1];
  106. };
  107. #if defined(powerc) || defined(__powerc)
  108. #pragma options align=reset
  109. #endif
  110.  
  111. typedef struct TrackRecord TrackRecord;
  112.  
  113. typedef TrackRecord *Track;
  114.  
  115. #if defined(powerc) || defined (__powerc)
  116. #pragma options align=mac68k
  117. #endif
  118. struct MediaRecord {
  119.     long                        data[1];
  120. };
  121. #if defined(powerc) || defined(__powerc)
  122. #pragma options align=reset
  123. #endif
  124.  
  125. typedef struct MediaRecord MediaRecord;
  126.  
  127. typedef MediaRecord *Media;
  128.  
  129. #if defined(powerc) || defined (__powerc)
  130. #pragma options align=mac68k
  131. #endif
  132. struct UserDataRecord {
  133.     long                        data[1];
  134. };
  135. #if defined(powerc) || defined(__powerc)
  136. #pragma options align=reset
  137. #endif
  138.  
  139. typedef struct UserDataRecord UserDataRecord;
  140.  
  141. typedef UserDataRecord *UserData;
  142.  
  143. #if defined(powerc) || defined (__powerc)
  144. #pragma options align=mac68k
  145. #endif
  146. struct TrackEditStateRecord {
  147.     long                        data[1];
  148. };
  149. #if defined(powerc) || defined(__powerc)
  150. #pragma options align=reset
  151. #endif
  152.  
  153. typedef struct TrackEditStateRecord TrackEditStateRecord;
  154.  
  155. typedef TrackEditStateRecord *TrackEditState;
  156.  
  157. #if defined(powerc) || defined (__powerc)
  158. #pragma options align=mac68k
  159. #endif
  160. struct MovieEditStateRecord {
  161.     long                        data[1];
  162. };
  163. #if defined(powerc) || defined(__powerc)
  164. #pragma options align=reset
  165. #endif
  166.  
  167. typedef struct MovieEditStateRecord MovieEditStateRecord;
  168.  
  169. typedef MovieEditStateRecord *MovieEditState;
  170.  
  171. #if defined(powerc) || defined (__powerc)
  172. #pragma options align=mac68k
  173. #endif
  174. struct SampleDescription {
  175.     long                        descSize;
  176.     long                        dataFormat;
  177.     long                        resvd1;
  178.     short                        resvd2;
  179.     short                        dataRefIndex;
  180. };
  181. #if defined(powerc) || defined(__powerc)
  182. #pragma options align=reset
  183. #endif
  184.  
  185. typedef struct SampleDescription SampleDescription;
  186.  
  187. typedef SampleDescription *SampleDescriptionPtr, **SampleDescriptionHandle;
  188.  
  189. #if defined(powerc) || defined (__powerc)
  190. #pragma options align=mac68k
  191. #endif
  192. struct SoundDescription {
  193.     long                        descSize;
  194.     long                        dataFormat;
  195.     long                        resvd1;
  196.     short                        resvd2;
  197.     short                        dataRefIndex;
  198.     short                        version;
  199.     short                        revlevel;
  200.     long                        vendor;
  201.     short                        numChannels;
  202.     short                        sampleSize;
  203.     short                        compressionID;
  204.     short                        packetSize;
  205.     Fixed                        sampleRate;
  206. };
  207. #if defined(powerc) || defined(__powerc)
  208. #pragma options align=reset
  209. #endif
  210.  
  211. typedef struct SoundDescription SoundDescription;
  212.  
  213. typedef SoundDescription *SoundDescriptionPtr, **SoundDescriptionHandle;
  214.  
  215. #if defined(powerc) || defined (__powerc)
  216. #pragma options align=mac68k
  217. #endif
  218. struct TextDescription {
  219.     long                        size;
  220.     long                        type;
  221.     long                        resvd1;
  222.     short                        resvd2;
  223.     short                        dataRefIndex;
  224.     long                        displayFlags;
  225.     long                        textJustification;
  226.     RGBColor                    bgColor;
  227.     Rect                        defaultTextBox;
  228.     ScrpSTElement                defaultStyle;
  229.     char                        defaultFontName[1];
  230. };
  231. #if defined(powerc) || defined(__powerc)
  232. #pragma options align=reset
  233. #endif
  234.  
  235. typedef struct TextDescription TextDescription;
  236.  
  237. typedef TextDescription *TextDescriptionPtr, **TextDescriptionHandle;
  238.  
  239. enum  {
  240.     dfDontDisplay                = 1 << 0,
  241.     dfDontAutoScale                = 1 << 1,
  242.     dfClipToTextBox                = 1 << 2,
  243.     dfUseMovieBGColor            = 1 << 3,
  244.     dfShrinkTextBoxToFit        = 1 << 4,
  245.     dfScrollIn                    = 1 << 5,
  246.     dfScrollOut                    = 1 << 6,
  247.     dfHorizScroll                = 1 << 7,
  248.     dfReverseScroll                = 1 << 8,
  249.     dfContinuousScroll            = 1 << 9,
  250.     dfFlowHoriz                    = 1 << 10,
  251.     dfDropShadow                = 1 << 12,
  252.     dfAntiAlias                    = 1 << 13,
  253.     dfKeyedText                    = 1 << 14
  254. };
  255.  
  256. enum  {
  257.     searchTextDontGoToFoundTime    = 1L << 16,
  258.     searchTextDontHiliteFoundText = 1L << 17,
  259.     searchTextOneTrackOnly        = 1L << 18,
  260.     searchTextEnabledTracksOnly    = 1L << 19
  261. };
  262.  
  263. enum  {
  264.     movieProgressOpen            = 0,
  265.     movieProgressUpdatePercent    = 1,
  266.     movieProgressClose            = 2
  267. };
  268.  
  269. enum  {
  270.     progressOpFlatten            = 1,
  271.     progressOpInsertTrackSegment,
  272.     progressOpInsertMovieSegment,
  273.     progressOpPaste,
  274.     progressOpAddMovieSelection,
  275.     progressOpCopy,
  276.     progressOpCut,
  277.     progressOpLoadMovieIntoRam,
  278.     progressOpLoadTrackIntoRam,
  279.     progressOpLoadMediaIntoRam,
  280.     progressOpImportMovie,
  281.     progressOpExportMovie
  282. };
  283.  
  284. enum  {
  285.     mediaQualityDraft            = 0x0000,
  286.     mediaQualityNormal            = 0x0040,
  287.     mediaQualityBetter            = 0x0080,
  288.     mediaQualityBest            = 0x00C0
  289. };
  290.  
  291. typedef pascal OSErr (*MovieRgnCoverProcPtr)(Movie theMovie, RgnHandle changedRgn, long refcon);
  292.  
  293. enum {
  294.     uppMovieRgnCoverProcInfo = kPascalStackBased
  295.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  296.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie)))
  297.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(RgnHandle)))
  298.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(long)))
  299. };
  300.  
  301. #if USESROUTINEDESCRIPTORS
  302. typedef UniversalProcPtr MovieRgnCoverUPP;
  303.  
  304. #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon)        \
  305.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, (theMovie), (changedRgn), (refcon))
  306. #define NewMovieRgnCoverProc(userRoutine)        \
  307.         (MovieRgnCoverUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieRgnCoverProcInfo, GetCurrentISA())
  308. #else
  309. typedef MovieRgnCoverProcPtr MovieRgnCoverUPP;
  310.  
  311. #define CallMovieRgnCoverProc(userRoutine, theMovie, changedRgn, refcon)        \
  312.         (*(userRoutine))((theMovie), (changedRgn), (refcon))
  313. #define NewMovieRgnCoverProc(userRoutine)        \
  314.         (MovieRgnCoverUPP)(userRoutine)
  315. #endif
  316.  
  317. typedef pascal OSErr (*MovieProgressProcPtr)(Movie theMovie, short message, short whatOperation, Fixed percentDone, long refcon);
  318.  
  319. enum {
  320.     uppMovieProgressProcInfo = kPascalStackBased
  321.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  322.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie)))
  323.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  324.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short)))
  325.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(Fixed)))
  326.          | STACK_ROUTINE_PARAMETER(5, SIZE_CODE(sizeof(long)))
  327. };
  328.  
  329. #if USESROUTINEDESCRIPTORS
  330. typedef UniversalProcPtr MovieProgressUPP;
  331.  
  332. #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon)        \
  333.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieProgressProcInfo, (theMovie), (message), (whatOperation), (percentDone), (refcon))
  334. #define NewMovieProgressProc(userRoutine)        \
  335.         (MovieProgressUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieProgressProcInfo, GetCurrentISA())
  336. #else
  337. typedef MovieProgressProcPtr MovieProgressUPP;
  338.  
  339. #define CallMovieProgressProc(userRoutine, theMovie, message, whatOperation, percentDone, refcon)        \
  340.         (*(userRoutine))((theMovie), (message), (whatOperation), (percentDone), (refcon))
  341. #define NewMovieProgressProc(userRoutine)        \
  342.         (MovieProgressUPP)(userRoutine)
  343. #endif
  344.  
  345. typedef pascal OSErr (*MovieDrawingCompleteProcPtr)(Movie theMovie, long refCon);
  346.  
  347. enum {
  348.     uppMovieDrawingCompleteProcInfo = kPascalStackBased
  349.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  350.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Movie)))
  351.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  352. };
  353.  
  354. #if USESROUTINEDESCRIPTORS
  355. typedef UniversalProcPtr MovieDrawingCompleteUPP;
  356.  
  357. #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon)        \
  358.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, (theMovie), (refCon))
  359. #define NewMovieDrawingCompleteProc(userRoutine)        \
  360.         (MovieDrawingCompleteUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMovieDrawingCompleteProcInfo, GetCurrentISA())
  361. #else
  362. typedef MovieDrawingCompleteProcPtr MovieDrawingCompleteUPP;
  363.  
  364. #define CallMovieDrawingCompleteProc(userRoutine, theMovie, refCon)        \
  365.         (*(userRoutine))((theMovie), (refCon))
  366. #define NewMovieDrawingCompleteProc(userRoutine)        \
  367.         (MovieDrawingCompleteUPP)(userRoutine)
  368. #endif
  369.  
  370. typedef pascal OSErr (*TrackTransferProcPtr)(Track t, long refCon);
  371.  
  372. enum {
  373.     uppTrackTransferProcInfo = kPascalStackBased
  374.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  375.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Track)))
  376.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  377. };
  378.  
  379. #if USESROUTINEDESCRIPTORS
  380. typedef UniversalProcPtr TrackTransferUPP;
  381.  
  382. #define CallTrackTransferProc(userRoutine, t, refCon)        \
  383.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTrackTransferProcInfo, (t), (refCon))
  384. #define NewTrackTransferProc(userRoutine)        \
  385.         (TrackTransferUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTrackTransferProcInfo, GetCurrentISA())
  386. #else
  387. typedef TrackTransferProcPtr TrackTransferUPP;
  388.  
  389. #define CallTrackTransferProc(userRoutine, t, refCon)        \
  390.         (*(userRoutine))((t), (refCon))
  391. #define NewTrackTransferProc(userRoutine)        \
  392.         (TrackTransferUPP)(userRoutine)
  393. #endif
  394.  
  395. typedef pascal OSErr (*GetMovieProcPtr)(long offset, long size, void *dataPtr, void *refCon);
  396.  
  397. enum {
  398.     uppGetMovieProcInfo = kPascalStackBased
  399.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  400.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  401.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  402.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*)))
  403.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(void*)))
  404. };
  405.  
  406. #if USESROUTINEDESCRIPTORS
  407. typedef UniversalProcPtr GetMovieUPP;
  408.  
  409. #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon)        \
  410.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppGetMovieProcInfo, (offset), (size), (dataPtr), (refCon))
  411. #define NewGetMovieProc(userRoutine)        \
  412.         (GetMovieUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppGetMovieProcInfo, GetCurrentISA())
  413. #else
  414. typedef GetMovieProcPtr GetMovieUPP;
  415.  
  416. #define CallGetMovieProc(userRoutine, offset, size, dataPtr, refCon)        \
  417.         (*(userRoutine))((offset), (size), (dataPtr), (refCon))
  418. #define NewGetMovieProc(userRoutine)        \
  419.         (GetMovieUPP)(userRoutine)
  420. #endif
  421.  
  422. typedef ComponentInstance MediaHandler, DataHandler;
  423.  
  424. typedef Component MediaHandlerComponent, DataHandlerComponent;
  425.  
  426. typedef ComponentResult HandlerError;
  427.  
  428. #ifndef kSmallestArray
  429. #define kSmallestArray 1
  430.  
  431. #endif
  432.  
  433. typedef long TimeValue;
  434.  
  435. typedef long TimeScale;
  436.  
  437. typedef Int64Bit CompTimeValue;
  438.  
  439. enum  {
  440.     loopTimeBase                = 1,
  441.     palindromeLoopTimeBase        = 2,
  442.     maintainTimeBaseZero        = 4
  443. };
  444.  
  445. typedef unsigned long TimeBaseFlags;
  446.  
  447. #if defined(powerc) || defined (__powerc)
  448. #pragma options align=mac68k
  449. #endif
  450. struct TimeBaseRecord {
  451.     long                        data[1];
  452. };
  453. #if defined(powerc) || defined(__powerc)
  454. #pragma options align=reset
  455. #endif
  456.  
  457. typedef struct TimeBaseRecord TimeBaseRecord;
  458.  
  459. typedef TimeBaseRecord *TimeBase;
  460.  
  461. #if defined(powerc) || defined (__powerc)
  462. #pragma options align=mac68k
  463. #endif
  464. struct CallBackRecord {
  465.     long                        data[1];
  466. };
  467. #if defined(powerc) || defined(__powerc)
  468. #pragma options align=reset
  469. #endif
  470.  
  471. typedef struct CallBackRecord CallBackRecord;
  472.  
  473. typedef CallBackRecord *QTCallBack;
  474.  
  475. #if defined(powerc) || defined (__powerc)
  476. #pragma options align=mac68k
  477. #endif
  478. struct TimeRecord {
  479.     CompTimeValue                value;
  480.     TimeScale                    scale;
  481.     TimeBase                    base;
  482. };
  483. #if defined(powerc) || defined(__powerc)
  484. #pragma options align=reset
  485. #endif
  486.  
  487. typedef struct TimeRecord TimeRecord;
  488.  
  489. enum  {
  490.     triggerTimeFwd                = 0x0001,
  491.     triggerTimeBwd                = 0x0002,
  492.     triggerTimeEither            = 0x0003,
  493.     triggerRateLT                = 0x0004,
  494.     triggerRateGT                = 0x0008,
  495.     triggerRateEqual            = 0x0010,
  496.     triggerRateLTE                = triggerRateLT|triggerRateEqual,
  497.     triggerRateGTE                = triggerRateGT|triggerRateEqual,
  498.     triggerRateNotEqual            = triggerRateGT|triggerRateEqual|triggerRateLT,
  499.     triggerRateChange            = 0,
  500.     triggerAtStart                = 0x0001,
  501.     triggerAtStop                = 0x0002
  502. };
  503.  
  504. typedef unsigned short QTCallBackFlags;
  505.  
  506. enum  {
  507.     timeBaseBeforeStartTime        = 1,
  508.     timeBaseAfterStopTime        = 2
  509. };
  510.  
  511. typedef unsigned long TimeBaseStatus;
  512.  
  513. enum  {
  514.     callBackAtTime                = 1,
  515.     callBackAtRate                = 2,
  516.     callBackAtTimeJump            = 3,
  517.     callBackAtExtremes            = 4,
  518.     callBackAtInterrupt            = 0x8000,
  519.     callBackAtDeferredTask        = 0x4000
  520. };
  521.  
  522. typedef unsigned short QTCallBackType;
  523.  
  524. typedef pascal void (*QTCallBackProcPtr)(QTCallBack cb, long refCon);
  525.  
  526. enum {
  527.     uppQTCallBackProcInfo = kPascalStackBased
  528.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(QTCallBack)))
  529.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  530. };
  531.  
  532. #if USESROUTINEDESCRIPTORS
  533. typedef UniversalProcPtr QTCallBackUPP;
  534.  
  535. #define CallQTCallBackProc(userRoutine, cb, refCon)        \
  536.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppQTCallBackProcInfo, (cb), (refCon))
  537. #define NewQTCallBackProc(userRoutine)        \
  538.         (QTCallBackUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTCallBackProcInfo, GetCurrentISA())
  539. #else
  540. typedef QTCallBackProcPtr QTCallBackUPP;
  541.  
  542. #define CallQTCallBackProc(userRoutine, cb, refCon)        \
  543.         (*(userRoutine))((cb), (refCon))
  544. #define NewQTCallBackProc(userRoutine)        \
  545.         (QTCallBackUPP)(userRoutine)
  546. #endif
  547.  
  548. enum  {
  549.     qtcbNeedsRateChanges        = 1,
  550.     qtcbNeedsTimeChanges        = 2,
  551.     qtcbNeedsStartStopChanges    = 4
  552. };
  553.  
  554. #if defined(powerc) || defined (__powerc)
  555. #pragma options align=mac68k
  556. #endif
  557. struct QTCallBackHeader {
  558.     long                        callBackFlags;
  559.     long                        reserved1;
  560.     char                        qtPrivate[40];
  561. };
  562. #if defined(powerc) || defined(__powerc)
  563. #pragma options align=reset
  564. #endif
  565.  
  566. typedef struct QTCallBackHeader QTCallBackHeader;
  567.  
  568. typedef pascal void (*QTSyncTaskProcPtr)(void *task);
  569.  
  570. enum {
  571.     uppQTSyncTaskProcInfo = kPascalStackBased
  572.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(void*)))
  573. };
  574.  
  575. #if USESROUTINEDESCRIPTORS
  576. typedef UniversalProcPtr QTSyncTaskUPP;
  577.  
  578. #define CallQTSyncTaskProc(userRoutine, task)        \
  579.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppQTSyncTaskProcInfo, (task))
  580. #define NewQTSyncTaskProc(userRoutine)        \
  581.         (QTSyncTaskUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppQTSyncTaskProcInfo, GetCurrentISA())
  582. #else
  583. typedef QTSyncTaskProcPtr QTSyncTaskUPP;
  584.  
  585. #define CallQTSyncTaskProc(userRoutine, task)        \
  586.         (*(userRoutine))((task))
  587. #define NewQTSyncTaskProc(userRoutine)        \
  588.         (QTSyncTaskUPP)(userRoutine)
  589. #endif
  590.  
  591. #if defined(powerc) || defined (__powerc)
  592. #pragma options align=mac68k
  593. #endif
  594. struct QTSyncTaskRecord {
  595.     void                        *qLink;
  596.     QTSyncTaskUPP                proc;
  597. };
  598. #if defined(powerc) || defined(__powerc)
  599. #pragma options align=reset
  600. #endif
  601.  
  602. typedef struct QTSyncTaskRecord QTSyncTaskRecord;
  603.  
  604. typedef QTSyncTaskRecord *QTSyncTaskPtr;
  605.  
  606. enum  {
  607.     keepInRam                    = 1 << 0,
  608.     unkeepInRam                    = 1 << 1,
  609.     flushFromRam                = 1 << 2,
  610.     loadForwardTrackEdits        = 1 << 3,
  611.     loadBackwardTrackEdits        = 1 << 4
  612. };
  613.  
  614. typedef pascal Boolean (*MoviePreviewCallOutProcPtr)(long refcon);
  615.  
  616. enum {
  617.     uppMoviePreviewCallOutProcInfo = kPascalStackBased
  618.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  619.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(long)))
  620. };
  621.  
  622. #if USESROUTINEDESCRIPTORS
  623. typedef UniversalProcPtr MoviePreviewCallOutUPP;
  624.  
  625. #define CallMoviePreviewCallOutProc(userRoutine, refcon)        \
  626.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, (refcon))
  627. #define NewMoviePreviewCallOutProc(userRoutine)        \
  628.         (MoviePreviewCallOutUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviePreviewCallOutProcInfo, GetCurrentISA())
  629. #else
  630. typedef MoviePreviewCallOutProcPtr MoviePreviewCallOutUPP;
  631.  
  632. #define CallMoviePreviewCallOutProc(userRoutine, refcon)        \
  633.         (*(userRoutine))((refcon))
  634. #define NewMoviePreviewCallOutProc(userRoutine)        \
  635.         (MoviePreviewCallOutUPP)(userRoutine)
  636. #endif
  637.  
  638. enum  {
  639.     newMovieActive                = 1 << 0,
  640.     newMovieDontResolveDataRefs    = 1 << 1,
  641.     newMovieDontAskUnresolvedDataRefs = 1 << 2,
  642.     newMovieDontAutoAlternates    = 1 << 3
  643. };
  644.  
  645. enum  {
  646.     trackUsageInMovie            = 1 << 1,
  647.     trackUsageInPreview            = 1 << 2,
  648.     trackUsageInPoster            = 1 << 3
  649. };
  650.  
  651. enum  {
  652.     mediaSampleNotSync            = 1 << 0,
  653.     mediaSampleShadowSync        = 1 << 1
  654. };
  655.  
  656. enum  {
  657.     pasteInParallel                = 1,
  658.     showUserSettingsDialog        = 2,
  659.     movieToFileOnlyExport        = 4
  660. };
  661.  
  662. enum  {
  663.     nextTimeMediaSample            = 1 << 0,
  664.     nextTimeMediaEdit            = 1 << 1,
  665.     nextTimeTrackEdit            = 1 << 2,
  666.     nextTimeSyncSample            = 1 << 3,
  667.     nextTimeEdgeOK                = 1 << 14,
  668.     nextTimeIgnoreActiveSegment    = 1 << 15
  669. };
  670.  
  671. typedef unsigned short nextTimeFlagsEnum;
  672.  
  673. enum  {
  674.     createMovieFileDeleteCurFile = 1L << 31,
  675.     createMovieFileDontCreateMovie = 1L << 30,
  676.     createMovieFileDontOpenFile    = 1L << 29
  677. };
  678.  
  679. typedef unsigned long createMovieFileFlagsEnum;
  680.  
  681. enum  {
  682.     flattenAddMovieToDataFork    = 1L << 0,
  683.     flattenActiveTracksOnly        = 1L << 2,
  684.     flattenDontInterleaveFlatten = 1L << 3
  685. };
  686.  
  687. typedef unsigned long movieFlattenFlagsEnum;
  688.  
  689. enum  {
  690.     movieInDataForkResID        = -1
  691. };
  692.  
  693. enum  {
  694.     mcTopLeftMovie                = 1 << 0,
  695.     mcScaleMovieToFit            = 1 << 1,
  696.     mcWithBadge                    = 1 << 2,
  697.     mcNotVisible                = 1 << 3,
  698.     mcWithFrame                    = 1 << 4
  699. };
  700.  
  701. enum  {
  702.     movieScrapDontZeroScrap        = 1 << 0,
  703.     movieScrapOnlyPutMovie        = 1 << 1
  704. };
  705.  
  706. enum  {
  707.     dataRefSelfReference        = 1 << 0,
  708.     dataRefWasNotResolved        = 1 << 1
  709. };
  710.  
  711. typedef unsigned long dataRefAttributesFlags;
  712.  
  713. enum  {
  714.     hintsScrubMode                = 1 << 0,
  715.     hintsLoop                    = 1 << 1,
  716.     hintsDontPurge                = 1 << 2,
  717.     hintsUseScreenBuffer        = 1 << 5,
  718.     hintsAllowInterlace            = 1 << 6,
  719.     hintsUseSoundInterp            = 1 << 7,
  720.     hintsHighQuality            = 1 << 8,
  721.     hintsPalindrome                = 1 << 9,
  722.     hintsInactive                = 1 << 11
  723. };
  724.  
  725. typedef unsigned long playHintsEnum;
  726.  
  727. enum  {
  728.     mediaHandlerFlagBaseClient    = 1
  729. };
  730.  
  731. typedef unsigned long mediaHandlerFlagsEnum;
  732.  
  733. enum  {
  734.     movieTrackMediaType            = 1 << 0,
  735.     movieTrackCharacteristic    = 1 << 1,
  736.     movieTrackEnabledOnly        = 1 << 2
  737. };
  738.  
  739. #ifdef __cplusplus
  740. extern "C" {
  741. #endif
  742.  
  743. extern pascal OSErr EnterMovies(void)
  744.  TWOWORDINLINE(0x7001, 0xAAAA);
  745. extern pascal void ExitMovies(void)
  746.  TWOWORDINLINE(0x7002, 0xAAAA);
  747. typedef pascal void (*MoviesErrorProcPtr)(OSErr theErr, long refcon);
  748.  
  749. enum {
  750.     uppMoviesErrorProcInfo = kPascalStackBased
  751.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(OSErr)))
  752.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(long)))
  753. };
  754.  
  755. #if USESROUTINEDESCRIPTORS
  756. typedef UniversalProcPtr MoviesErrorUPP;
  757.  
  758. #define CallMoviesErrorProc(userRoutine, theErr, refcon)        \
  759.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMoviesErrorProcInfo, (theErr), (refcon))
  760. #define NewMoviesErrorProc(userRoutine)        \
  761.         (MoviesErrorUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMoviesErrorProcInfo, GetCurrentISA())
  762. #else
  763. typedef MoviesErrorProcPtr MoviesErrorUPP;
  764.  
  765. #define CallMoviesErrorProc(userRoutine, theErr, refcon)        \
  766.         (*(userRoutine))((theErr), (refcon))
  767. #define NewMoviesErrorProc(userRoutine)        \
  768.         (MoviesErrorUPP)(userRoutine)
  769. #endif
  770.  
  771. extern pascal OSErr GetMoviesError(void)
  772.  TWOWORDINLINE(0x7003, 0xAAAA);
  773. extern pascal void ClearMoviesStickyError(void)
  774.  THREEWORDINLINE(0x303C, 0xDE, 0xAAAA);
  775. extern pascal OSErr GetMoviesStickyError(void)
  776.  TWOWORDINLINE(0x7004, 0xAAAA);
  777. extern pascal void SetMoviesErrorProc(MoviesErrorUPP errProc, long refcon)
  778.  THREEWORDINLINE(0x303C, 0xEF, 0xAAAA);
  779. extern pascal void MoviesTask(Movie theMovie, long maxMilliSecToUse)
  780.  TWOWORDINLINE(0x7005, 0xAAAA);
  781. extern pascal OSErr PrerollMovie(Movie theMovie, TimeValue time, Fixed Rate)
  782.  TWOWORDINLINE(0x7006, 0xAAAA);
  783. extern pascal OSErr LoadMovieIntoRam(Movie theMovie, TimeValue time, TimeValue duration, long flags)
  784.  TWOWORDINLINE(0x7007, 0xAAAA);
  785. extern pascal OSErr LoadTrackIntoRam(Track theTrack, TimeValue time, TimeValue duration, long flags)
  786.  THREEWORDINLINE(0x303C, 0x16E, 0xAAAA);
  787. extern pascal OSErr LoadMediaIntoRam(Media theMedia, TimeValue time, TimeValue duration, long flags)
  788.  TWOWORDINLINE(0x7008, 0xAAAA);
  789. extern pascal void SetMovieActive(Movie theMovie, Boolean active)
  790.  TWOWORDINLINE(0x7009, 0xAAAA);
  791. extern pascal Boolean GetMovieActive(Movie theMovie)
  792.  TWOWORDINLINE(0x700A, 0xAAAA);
  793. extern pascal void StartMovie(Movie theMovie)
  794.  TWOWORDINLINE(0x700B, 0xAAAA);
  795. extern pascal void StopMovie(Movie theMovie)
  796.  TWOWORDINLINE(0x700C, 0xAAAA);
  797. extern pascal void GoToBeginningOfMovie(Movie theMovie)
  798.  TWOWORDINLINE(0x700D, 0xAAAA);
  799. extern pascal void GoToEndOfMovie(Movie theMovie)
  800.  TWOWORDINLINE(0x700E, 0xAAAA);
  801. extern pascal Boolean IsMovieDone(Movie theMovie)
  802.  THREEWORDINLINE(0x303C, 0xDD, 0xAAAA);
  803. extern pascal Boolean GetMoviePreviewMode(Movie theMovie)
  804.  TWOWORDINLINE(0x700F, 0xAAAA);
  805. extern pascal void SetMoviePreviewMode(Movie theMovie, Boolean usePreview)
  806.  TWOWORDINLINE(0x7010, 0xAAAA);
  807. extern pascal void ShowMoviePoster(Movie theMovie)
  808.  TWOWORDINLINE(0x7011, 0xAAAA);
  809. extern pascal void PlayMoviePreview(Movie theMovie, MoviePreviewCallOutUPP callOutProc, long refcon)
  810.  THREEWORDINLINE(0x303C, 0xF2, 0xAAAA);
  811. extern pascal TimeBase GetMovieTimeBase(Movie theMovie)
  812.  TWOWORDINLINE(0x7012, 0xAAAA);
  813. extern pascal void SetMovieMasterTimeBase(Movie theMovie, TimeBase tb, const TimeRecord *slaveZero)
  814.  THREEWORDINLINE(0x303C, 0x167, 0xAAAA);
  815. extern pascal void SetMovieMasterClock(Movie theMovie, Component clockMeister, const TimeRecord *slaveZero)
  816.  THREEWORDINLINE(0x303C, 0x168, 0xAAAA);
  817. extern pascal void GetMovieGWorld(Movie theMovie, CGrafPtr *port, GDHandle *gdh)
  818.  TWOWORDINLINE(0x7015, 0xAAAA);
  819. extern pascal void SetMovieGWorld(Movie theMovie, CGrafPtr port, GDHandle gdh)
  820.  TWOWORDINLINE(0x7016, 0xAAAA);
  821. enum  {
  822.     movieDrawingCallWhenChanged    = 0,
  823.     movieDrawingCallAlways        = 1
  824. };
  825.  
  826. extern pascal void SetMovieDrawingCompleteProc(Movie theMovie, long flags, MovieDrawingCompleteUPP proc, long refCon)
  827.  THREEWORDINLINE(0x303C, 0x1DE, 0xAAAA);
  828. extern pascal Track GetNextTrackForCompositing(Movie theMovie, Track theTrack)
  829.  THREEWORDINLINE(0x303C, 0x1FA, 0xAAAA);
  830. extern pascal Track GetPrevTrackForCompositing(Movie theMovie, Track theTrack)
  831.  THREEWORDINLINE(0x303C, 0x1FB, 0xAAAA);
  832. extern pascal void SetTrackGWorld(Track theTrack, CGrafPtr port, GDHandle gdh, TrackTransferUPP proc, long refCon)
  833.  THREEWORDINLINE(0x303C, 0x9D, 0xAAAA);
  834. extern pascal PicHandle GetMoviePict(Movie theMovie, TimeValue time)
  835.  TWOWORDINLINE(0x701D, 0xAAAA);
  836. extern pascal PicHandle GetTrackPict(Track theTrack, TimeValue time)
  837.  TWOWORDINLINE(0x701E, 0xAAAA);
  838. extern pascal PicHandle GetMoviePosterPict(Movie theMovie)
  839.  THREEWORDINLINE(0x303C, 0xF7, 0xAAAA);
  840. extern pascal OSErr UpdateMovie(Movie theMovie)
  841.  TWOWORDINLINE(0x701F, 0xAAAA);
  842. extern pascal void GetMovieBox(Movie theMovie, Rect *boxRect)
  843.  THREEWORDINLINE(0x303C, 0xF9, 0xAAAA);
  844. extern pascal void SetMovieBox(Movie theMovie, const Rect *boxRect)
  845.  THREEWORDINLINE(0x303C, 0xFA, 0xAAAA);
  846. extern pascal RgnHandle GetMovieDisplayClipRgn(Movie theMovie)
  847.  THREEWORDINLINE(0x303C, 0xFC, 0xAAAA);
  848. extern pascal void SetMovieDisplayClipRgn(Movie theMovie, RgnHandle theClip)
  849.  THREEWORDINLINE(0x303C, 0xFD, 0xAAAA);
  850. extern pascal RgnHandle GetMovieClipRgn(Movie theMovie)
  851.  THREEWORDINLINE(0x303C, 0x100, 0xAAAA);
  852. extern pascal void SetMovieClipRgn(Movie theMovie, RgnHandle theClip)
  853.  THREEWORDINLINE(0x303C, 0x101, 0xAAAA);
  854. extern pascal RgnHandle GetTrackClipRgn(Track theTrack)
  855.  THREEWORDINLINE(0x303C, 0x102, 0xAAAA);
  856. extern pascal void SetTrackClipRgn(Track theTrack, RgnHandle theClip)
  857.  THREEWORDINLINE(0x303C, 0x103, 0xAAAA);
  858. extern pascal RgnHandle GetMovieDisplayBoundsRgn(Movie theMovie)
  859.  THREEWORDINLINE(0x303C, 0xFB, 0xAAAA);
  860. extern pascal RgnHandle GetTrackDisplayBoundsRgn(Track theTrack)
  861.  THREEWORDINLINE(0x303C, 0x112, 0xAAAA);
  862. extern pascal RgnHandle GetMovieBoundsRgn(Movie theMovie)
  863.  THREEWORDINLINE(0x303C, 0xFE, 0xAAAA);
  864. extern pascal RgnHandle GetTrackMovieBoundsRgn(Track theTrack)
  865.  THREEWORDINLINE(0x303C, 0xFF, 0xAAAA);
  866. extern pascal RgnHandle GetTrackBoundsRgn(Track theTrack)
  867.  THREEWORDINLINE(0x303C, 0x111, 0xAAAA);
  868. extern pascal PixMapHandle GetTrackMatte(Track theTrack)
  869.  THREEWORDINLINE(0x303C, 0x115, 0xAAAA);
  870. extern pascal void SetTrackMatte(Track theTrack, PixMapHandle theMatte)
  871.  THREEWORDINLINE(0x303C, 0x116, 0xAAAA);
  872. extern pascal void DisposeMatte(PixMapHandle theMatte)
  873.  THREEWORDINLINE(0x303C, 0x14A, 0xAAAA);
  874. extern pascal Movie NewMovie(long flags)
  875.  THREEWORDINLINE(0x303C, 0x187, 0xAAAA);
  876. extern pascal OSErr PutMovieIntoHandle(Movie theMovie, Handle publicMovie)
  877.  TWOWORDINLINE(0x7022, 0xAAAA);
  878. extern pascal OSErr PutMovieIntoDataFork(Movie theMovie, short fRefNum, long offset, long maxSize)
  879.  THREEWORDINLINE(0x303C, 0x1B4, 0xAAAA);
  880. extern pascal void DisposeMovie(Movie theMovie)
  881.  TWOWORDINLINE(0x7023, 0xAAAA);
  882. extern pascal unsigned long GetMovieCreationTime(Movie theMovie)
  883.  TWOWORDINLINE(0x7026, 0xAAAA);
  884. extern pascal unsigned long GetMovieModificationTime(Movie theMovie)
  885.  TWOWORDINLINE(0x7027, 0xAAAA);
  886. extern pascal TimeScale GetMovieTimeScale(Movie theMovie)
  887.  TWOWORDINLINE(0x7029, 0xAAAA);
  888. extern pascal void SetMovieTimeScale(Movie theMovie, TimeScale timeScale)
  889.  TWOWORDINLINE(0x702A, 0xAAAA);
  890. extern pascal TimeValue GetMovieDuration(Movie theMovie)
  891.  TWOWORDINLINE(0x702B, 0xAAAA);
  892. extern pascal Fixed GetMovieRate(Movie theMovie)
  893.  TWOWORDINLINE(0x702C, 0xAAAA);
  894. extern pascal void SetMovieRate(Movie theMovie, Fixed rate)
  895.  TWOWORDINLINE(0x702D, 0xAAAA);
  896. extern pascal Fixed GetMoviePreferredRate(Movie theMovie)
  897.  THREEWORDINLINE(0x303C, 0xF3, 0xAAAA);
  898. extern pascal void SetMoviePreferredRate(Movie theMovie, Fixed rate)
  899.  THREEWORDINLINE(0x303C, 0xF4, 0xAAAA);
  900. extern pascal short GetMoviePreferredVolume(Movie theMovie)
  901.  THREEWORDINLINE(0x303C, 0xF5, 0xAAAA);
  902. extern pascal void SetMoviePreferredVolume(Movie theMovie, short volume)
  903.  THREEWORDINLINE(0x303C, 0xF6, 0xAAAA);
  904. extern pascal short GetMovieVolume(Movie theMovie)
  905.  TWOWORDINLINE(0x702E, 0xAAAA);
  906. extern pascal void SetMovieVolume(Movie theMovie, short volume)
  907.  TWOWORDINLINE(0x702F, 0xAAAA);
  908. extern pascal void GetMovieMatrix(Movie theMovie, MatrixRecord *matrix)
  909.  TWOWORDINLINE(0x7031, 0xAAAA);
  910. extern pascal void SetMovieMatrix(Movie theMovie, const MatrixRecord *matrix)
  911.  TWOWORDINLINE(0x7032, 0xAAAA);
  912. extern pascal void GetMoviePreviewTime(Movie theMovie, TimeValue *previewTime, TimeValue *previewDuration)
  913.  TWOWORDINLINE(0x7033, 0xAAAA);
  914. extern pascal void SetMoviePreviewTime(Movie theMovie, TimeValue previewTime, TimeValue previewDuration)
  915.  TWOWORDINLINE(0x7034, 0xAAAA);
  916. extern pascal TimeValue GetMoviePosterTime(Movie theMovie)
  917.  TWOWORDINLINE(0x7035, 0xAAAA);
  918. extern pascal void SetMoviePosterTime(Movie theMovie, TimeValue posterTime)
  919.  TWOWORDINLINE(0x7036, 0xAAAA);
  920. extern pascal void GetMovieSelection(Movie theMovie, TimeValue *selectionTime, TimeValue *selectionDuration)
  921.  TWOWORDINLINE(0x7037, 0xAAAA);
  922. extern pascal void SetMovieSelection(Movie theMovie, TimeValue selectionTime, TimeValue selectionDuration)
  923.  TWOWORDINLINE(0x7038, 0xAAAA);
  924. extern pascal void SetMovieActiveSegment(Movie theMovie, TimeValue startTime, TimeValue duration)
  925.  THREEWORDINLINE(0x303C, 0x15C, 0xAAAA);
  926. extern pascal void GetMovieActiveSegment(Movie theMovie, TimeValue *startTime, TimeValue *duration)
  927.  THREEWORDINLINE(0x303C, 0x15D, 0xAAAA);
  928. extern pascal TimeValue GetMovieTime(Movie theMovie, TimeRecord *currentTime)
  929.  TWOWORDINLINE(0x7039, 0xAAAA);
  930. extern pascal void SetMovieTime(Movie theMovie, const TimeRecord *newtime)
  931.  TWOWORDINLINE(0x703C, 0xAAAA);
  932. extern pascal void SetMovieTimeValue(Movie theMovie, TimeValue newtime)
  933.  TWOWORDINLINE(0x703D, 0xAAAA);
  934. extern pascal UserData GetMovieUserData(Movie theMovie)
  935.  TWOWORDINLINE(0x703E, 0xAAAA);
  936. extern pascal long GetMovieTrackCount(Movie theMovie)
  937.  TWOWORDINLINE(0x703F, 0xAAAA);
  938. extern pascal Track GetMovieTrack(Movie theMovie, long trackID)
  939.  TWOWORDINLINE(0x7040, 0xAAAA);
  940. extern pascal Track GetMovieIndTrack(Movie theMovie, long index)
  941.  THREEWORDINLINE(0x303C, 0x117, 0xAAAA);
  942. extern pascal Track GetMovieIndTrackType(Movie theMovie, long index, OSType trackType, long flags)
  943.  THREEWORDINLINE(0x303C, 0x208, 0xAAAA);
  944. extern pascal long GetTrackID(Track theTrack)
  945.  THREEWORDINLINE(0x303C, 0x127, 0xAAAA);
  946. extern pascal Movie GetTrackMovie(Track theTrack)
  947.  THREEWORDINLINE(0x303C, 0xD0, 0xAAAA);
  948. extern pascal Track NewMovieTrack(Movie theMovie, Fixed width, Fixed height, short trackVolume)
  949.  THREEWORDINLINE(0x303C, 0x188, 0xAAAA);
  950. extern pascal void DisposeMovieTrack(Track theTrack)
  951.  TWOWORDINLINE(0x7042, 0xAAAA);
  952. extern pascal unsigned long GetTrackCreationTime(Track theTrack)
  953.  TWOWORDINLINE(0x7043, 0xAAAA);
  954. extern pascal unsigned long GetTrackModificationTime(Track theTrack)
  955.  TWOWORDINLINE(0x7044, 0xAAAA);
  956. extern pascal Boolean GetTrackEnabled(Track theTrack)
  957.  TWOWORDINLINE(0x7045, 0xAAAA);
  958. extern pascal void SetTrackEnabled(Track theTrack, Boolean isEnabled)
  959.  TWOWORDINLINE(0x7046, 0xAAAA);
  960. extern pascal long GetTrackUsage(Track theTrack)
  961.  TWOWORDINLINE(0x7047, 0xAAAA);
  962. extern pascal void SetTrackUsage(Track theTrack, long usage)
  963.  TWOWORDINLINE(0x7048, 0xAAAA);
  964. extern pascal TimeValue GetTrackDuration(Track theTrack)
  965.  TWOWORDINLINE(0x704B, 0xAAAA);
  966. extern pascal TimeValue GetTrackOffset(Track theTrack)
  967.  TWOWORDINLINE(0x704C, 0xAAAA);
  968. extern pascal void SetTrackOffset(Track theTrack, TimeValue movieOffsetTime)
  969.  TWOWORDINLINE(0x704D, 0xAAAA);
  970. extern pascal short GetTrackLayer(Track theTrack)
  971.  TWOWORDINLINE(0x7050, 0xAAAA);
  972. extern pascal void SetTrackLayer(Track theTrack, short layer)
  973.  TWOWORDINLINE(0x7051, 0xAAAA);
  974. extern pascal Track GetTrackAlternate(Track theTrack)
  975.  TWOWORDINLINE(0x7052, 0xAAAA);
  976. extern pascal void SetTrackAlternate(Track theTrack, Track alternateT)
  977.  TWOWORDINLINE(0x7053, 0xAAAA);
  978. extern pascal void SetAutoTrackAlternatesEnabled(Movie theMovie, Boolean enable)
  979.  THREEWORDINLINE(0x303C, 0x15E, 0xAAAA);
  980. extern pascal void SelectMovieAlternates(Movie theMovie)
  981.  THREEWORDINLINE(0x303C, 0x15F, 0xAAAA);
  982. extern pascal short GetTrackVolume(Track theTrack)
  983.  TWOWORDINLINE(0x7054, 0xAAAA);
  984. extern pascal void SetTrackVolume(Track theTrack, short volume)
  985.  TWOWORDINLINE(0x7055, 0xAAAA);
  986. extern pascal void GetTrackMatrix(Track theTrack, MatrixRecord *matrix)
  987.  TWOWORDINLINE(0x7056, 0xAAAA);
  988. extern pascal void SetTrackMatrix(Track theTrack, const MatrixRecord *matrix)
  989.  TWOWORDINLINE(0x7057, 0xAAAA);
  990. extern pascal void GetTrackDimensions(Track theTrack, Fixed *width, Fixed *height)
  991.  TWOWORDINLINE(0x705D, 0xAAAA);
  992. extern pascal void SetTrackDimensions(Track theTrack, Fixed width, Fixed height)
  993.  TWOWORDINLINE(0x705E, 0xAAAA);
  994. extern pascal UserData GetTrackUserData(Track theTrack)
  995.  TWOWORDINLINE(0x705F, 0xAAAA);
  996. extern pascal Media NewTrackMedia(Track theTrack, OSType mediaType, TimeScale timeScale, Handle dataRef, OSType dataRefType)
  997.  THREEWORDINLINE(0x303C, 0x18E, 0xAAAA);
  998. extern pascal void DisposeTrackMedia(Media theMedia)
  999.  TWOWORDINLINE(0x7061, 0xAAAA);
  1000. extern pascal Media GetTrackMedia(Track theTrack)
  1001.  TWOWORDINLINE(0x7062, 0xAAAA);
  1002. extern pascal Track GetMediaTrack(Media theMedia)
  1003.  THREEWORDINLINE(0x303C, 0xC5, 0xAAAA);
  1004. extern pascal unsigned long GetMediaCreationTime(Media theMedia)
  1005.  TWOWORDINLINE(0x7066, 0xAAAA);
  1006. extern pascal unsigned long GetMediaModificationTime(Media theMedia)
  1007.  TWOWORDINLINE(0x7067, 0xAAAA);
  1008. extern pascal TimeScale GetMediaTimeScale(Media theMedia)
  1009.  TWOWORDINLINE(0x7068, 0xAAAA);
  1010. extern pascal void SetMediaTimeScale(Media theMedia, TimeScale timeScale)
  1011.  TWOWORDINLINE(0x7069, 0xAAAA);
  1012. extern pascal TimeValue GetMediaDuration(Media theMedia)
  1013.  TWOWORDINLINE(0x706A, 0xAAAA);
  1014. extern pascal short GetMediaLanguage(Media theMedia)
  1015.  TWOWORDINLINE(0x706B, 0xAAAA);
  1016. extern pascal void SetMediaLanguage(Media theMedia, short language)
  1017.  TWOWORDINLINE(0x706C, 0xAAAA);
  1018. extern pascal short GetMediaQuality(Media theMedia)
  1019.  TWOWORDINLINE(0x706D, 0xAAAA);
  1020. extern pascal void SetMediaQuality(Media theMedia, short quality)
  1021.  TWOWORDINLINE(0x706E, 0xAAAA);
  1022. extern pascal void GetMediaHandlerDescription(Media theMedia, OSType *mediaType, Str255 creatorName, OSType *creatorManufacturer)
  1023.  TWOWORDINLINE(0x706F, 0xAAAA);
  1024. extern pascal UserData GetMediaUserData(Media theMedia)
  1025.  TWOWORDINLINE(0x7070, 0xAAAA);
  1026. extern pascal MediaHandler GetMediaHandler(Media theMedia)
  1027.  TWOWORDINLINE(0x7071, 0xAAAA);
  1028. extern pascal OSErr SetMediaHandler(Media theMedia, MediaHandlerComponent mH)
  1029.  THREEWORDINLINE(0x303C, 0x190, 0xAAAA);
  1030. extern pascal OSErr BeginMediaEdits(Media theMedia)
  1031.  TWOWORDINLINE(0x7072, 0xAAAA);
  1032. extern pascal OSErr EndMediaEdits(Media theMedia)
  1033.  TWOWORDINLINE(0x7073, 0xAAAA);
  1034. extern pascal OSErr SetMediaDefaultDataRefIndex(Media theMedia, short index)
  1035.  THREEWORDINLINE(0x303C, 0x1E0, 0xAAAA);
  1036. extern pascal void GetMediaDataHandlerDescription(Media theMedia, short index, OSType *dhType, Str255 creatorName, OSType *creatorManufacturer)
  1037.  THREEWORDINLINE(0x303C, 0x19E, 0xAAAA);
  1038. extern pascal DataHandler GetMediaDataHandler(Media theMedia, short index)
  1039.  THREEWORDINLINE(0x303C, 0x19F, 0xAAAA);
  1040. extern pascal OSErr SetMediaDataHandler(Media theMedia, short index, DataHandlerComponent dataHandler)
  1041.  THREEWORDINLINE(0x303C, 0x1A0, 0xAAAA);
  1042. extern pascal Component GetDataHandler(Handle dataRef, OSType dataHandlerSubType, long flags)
  1043.  THREEWORDINLINE(0x303C, 0x1ED, 0xAAAA);
  1044. extern pascal long GetMediaSampleDescriptionCount(Media theMedia)
  1045.  TWOWORDINLINE(0x7077, 0xAAAA);
  1046. extern pascal void GetMediaSampleDescription(Media theMedia, long index, SampleDescriptionHandle descH)
  1047.  TWOWORDINLINE(0x7078, 0xAAAA);
  1048. extern pascal OSErr SetMediaSampleDescription(Media theMedia, long index, SampleDescriptionHandle descH)
  1049.  THREEWORDINLINE(0x303C, 0x1D0, 0xAAAA);
  1050. extern pascal long GetMediaSampleCount(Media theMedia)
  1051.  TWOWORDINLINE(0x7079, 0xAAAA);
  1052. extern pascal void SampleNumToMediaTime(Media theMedia, long logicalSampleNum, TimeValue *sampleTime, TimeValue *sampleDuration)
  1053.  TWOWORDINLINE(0x707A, 0xAAAA);
  1054. extern pascal void MediaTimeToSampleNum(Media theMedia, TimeValue time, long *sampleNum, TimeValue *sampleTime, TimeValue *sampleDuration)
  1055.  TWOWORDINLINE(0x707B, 0xAAAA);
  1056. extern pascal OSErr AddMediaSample(Media theMedia, Handle dataIn, long inOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags, TimeValue *sampleTime)
  1057.  TWOWORDINLINE(0x707C, 0xAAAA);
  1058. #if defined(powerc) || defined (__powerc)
  1059. #pragma options align=mac68k
  1060. #endif
  1061. struct SampleReferenceRecord {
  1062.     long                        dataOffset;
  1063.     long                        dataSize;
  1064.     TimeValue                    durationPerSample;
  1065.     long                        numberOfSamples;
  1066.     short                        sampleFlags;
  1067. };
  1068. #if defined(powerc) || defined(__powerc)
  1069. #pragma options align=reset
  1070. #endif
  1071.  
  1072. typedef struct SampleReferenceRecord SampleReferenceRecord;
  1073.  
  1074. typedef SampleReferenceRecord *SampleReferencePtr;
  1075.  
  1076. extern pascal OSErr AddMediaSampleReference(Media theMedia, long dataOffset, unsigned long size, TimeValue durationPerSample, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, short sampleFlags, TimeValue *sampleTime)
  1077.  TWOWORDINLINE(0x707D, 0xAAAA);
  1078. extern pascal OSErr AddMediaSampleReferences(Media theMedia, SampleDescriptionHandle sampleDescriptionH, long numberOfSamples, SampleReferencePtr sampleRefs, TimeValue *sampleTime)
  1079.  THREEWORDINLINE(0x303C, 0x1F7, 0xAAAA);
  1080. extern pascal OSErr GetMediaSample(Media theMedia, Handle dataOut, long maxSizeToGrow, long *size, TimeValue time, TimeValue *sampleTime, TimeValue *durationPerSample, SampleDescriptionHandle sampleDescriptionH, long *sampleDescriptionIndex, long maxNumberOfSamples, long *numberOfSamples, short *sampleFlags)
  1081.  TWOWORDINLINE(0x707E, 0xAAAA);
  1082. extern pascal OSErr GetMediaSampleReference(Media theMedia, long *dataOffset, long *size, TimeValue time, TimeValue *sampleTime, TimeValue *durationPerSample, SampleDescriptionHandle sampleDescriptionH, long *sampleDescriptionIndex, long maxNumberOfSamples, long *numberOfSamples, short *sampleFlags)
  1083.  TWOWORDINLINE(0x707F, 0xAAAA);
  1084. extern pascal OSErr SetMediaPreferredChunkSize(Media theMedia, long maxChunkSize)
  1085.  THREEWORDINLINE(0x303C, 0x1F8, 0xAAAA);
  1086. extern pascal OSErr GetMediaPreferredChunkSize(Media theMedia, long *maxChunkSize)
  1087.  THREEWORDINLINE(0x303C, 0x1F9, 0xAAAA);
  1088. extern pascal OSErr SetMediaShadowSync(Media theMedia, long frameDiffSampleNum, long syncSampleNum)
  1089.  THREEWORDINLINE(0x303C, 0x121, 0xAAAA);
  1090. extern pascal OSErr GetMediaShadowSync(Media theMedia, long frameDiffSampleNum, long *syncSampleNum)
  1091.  THREEWORDINLINE(0x303C, 0x122, 0xAAAA);
  1092. extern pascal OSErr InsertMediaIntoTrack(Track theTrack, TimeValue trackStart, TimeValue mediaTime, TimeValue mediaDuration, Fixed mediaRate)
  1093.  THREEWORDINLINE(0x303C, 0x183, 0xAAAA);
  1094. extern pascal OSErr InsertTrackSegment(Track srcTrack, Track dstTrack, TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn)
  1095.  THREEWORDINLINE(0x303C, 0x85, 0xAAAA);
  1096. extern pascal OSErr InsertMovieSegment(Movie srcMovie, Movie dstMovie, TimeValue srcIn, TimeValue srcDuration, TimeValue dstIn)
  1097.  THREEWORDINLINE(0x303C, 0x86, 0xAAAA);
  1098. extern pascal OSErr InsertEmptyTrackSegment(Track dstTrack, TimeValue dstIn, TimeValue dstDuration)
  1099.  THREEWORDINLINE(0x303C, 0x87, 0xAAAA);
  1100. extern pascal OSErr InsertEmptyMovieSegment(Movie dstMovie, TimeValue dstIn, TimeValue dstDuration)
  1101.  THREEWORDINLINE(0x303C, 0x88, 0xAAAA);
  1102. extern pascal OSErr DeleteTrackSegment(Track theTrack, TimeValue in, TimeValue duration)
  1103.  THREEWORDINLINE(0x303C, 0x89, 0xAAAA);
  1104. extern pascal OSErr DeleteMovieSegment(Movie theMovie, TimeValue in, TimeValue duration)
  1105.  THREEWORDINLINE(0x303C, 0x8A, 0xAAAA);
  1106. extern pascal OSErr ScaleTrackSegment(Track theTrack, TimeValue in, TimeValue oldDuration, TimeValue newDuration)
  1107.  THREEWORDINLINE(0x303C, 0x8B, 0xAAAA);
  1108. extern pascal OSErr ScaleMovieSegment(Movie theMovie, TimeValue in, TimeValue oldDuration, TimeValue newDuration)
  1109.  THREEWORDINLINE(0x303C, 0x8C, 0xAAAA);
  1110. extern pascal Movie CutMovieSelection(Movie theMovie)
  1111.  THREEWORDINLINE(0x303C, 0x8D, 0xAAAA);
  1112. extern pascal Movie CopyMovieSelection(Movie theMovie)
  1113.  THREEWORDINLINE(0x303C, 0x8E, 0xAAAA);
  1114. extern pascal void PasteMovieSelection(Movie theMovie, Movie src)
  1115.  THREEWORDINLINE(0x303C, 0x8F, 0xAAAA);
  1116. extern pascal void AddMovieSelection(Movie theMovie, Movie src)
  1117.  THREEWORDINLINE(0x303C, 0x152, 0xAAAA);
  1118. extern pascal void ClearMovieSelection(Movie theMovie)
  1119.  THREEWORDINLINE(0x303C, 0xE1, 0xAAAA);
  1120. extern pascal OSErr PasteHandleIntoMovie(Handle h, OSType handleType, Movie theMovie, long flags, ComponentInstance userComp)
  1121.  THREEWORDINLINE(0x303C, 0xCB, 0xAAAA);
  1122. extern pascal OSErr PutMovieIntoTypedHandle(Movie theMovie, Track targetTrack, OSType handleType, Handle publicMovie, TimeValue start, TimeValue dur, long flags, ComponentInstance userComp)
  1123.  THREEWORDINLINE(0x303C, 0x1CD, 0xAAAA);
  1124. extern pascal Component IsScrapMovie(Track targetTrack)
  1125.  THREEWORDINLINE(0x303C, 0xCC, 0xAAAA);
  1126. extern pascal OSErr CopyTrackSettings(Track srcTrack, Track dstTrack)
  1127.  THREEWORDINLINE(0x303C, 0x153, 0xAAAA);
  1128. extern pascal OSErr CopyMovieSettings(Movie srcMovie, Movie dstMovie)
  1129.  THREEWORDINLINE(0x303C, 0x154, 0xAAAA);
  1130. extern pascal OSErr AddEmptyTrackToMovie(Track srcTrack, Movie dstMovie, Handle dataRef, OSType dataRefType, Track *dstTrack)
  1131.  TWOWORDINLINE(0x7074, 0xAAAA);
  1132. extern pascal MovieEditState NewMovieEditState(Movie theMovie)
  1133.  THREEWORDINLINE(0x303C, 0x104, 0xAAAA);
  1134. extern pascal OSErr UseMovieEditState(Movie theMovie, MovieEditState toState)
  1135.  THREEWORDINLINE(0x303C, 0x105, 0xAAAA);
  1136. extern pascal OSErr DisposeMovieEditState(MovieEditState state)
  1137.  THREEWORDINLINE(0x303C, 0x106, 0xAAAA);
  1138. extern pascal TrackEditState NewTrackEditState(Track theTrack)
  1139.  THREEWORDINLINE(0x303C, 0x107, 0xAAAA);
  1140. extern pascal OSErr UseTrackEditState(Track theTrack, TrackEditState state)
  1141.  THREEWORDINLINE(0x303C, 0x108, 0xAAAA);
  1142. extern pascal OSErr DisposeTrackEditState(TrackEditState state)
  1143.  THREEWORDINLINE(0x303C, 0x109, 0xAAAA);
  1144. extern pascal OSErr AddTrackReference(Track theTrack, Track refTrack, OSType refType, long *addedIndex)
  1145.  THREEWORDINLINE(0x303C, 0x1F0, 0xAAAA);
  1146. extern pascal OSErr DeleteTrackReference(Track theTrack, OSType refType, long index)
  1147.  THREEWORDINLINE(0x303C, 0x1F1, 0xAAAA);
  1148. extern pascal OSErr SetTrackReference(Track theTrack, Track refTrack, OSType refType, long index)
  1149.  THREEWORDINLINE(0x303C, 0x1F2, 0xAAAA);
  1150. extern pascal Track GetTrackReference(Track theTrack, OSType refType, long index)
  1151.  THREEWORDINLINE(0x303C, 0x1F3, 0xAAAA);
  1152. extern pascal OSType GetNextTrackReferenceType(Track theTrack, OSType refType)
  1153.  THREEWORDINLINE(0x303C, 0x1F4, 0xAAAA);
  1154. extern pascal long GetTrackReferenceCount(Track theTrack, OSType refType)
  1155.  THREEWORDINLINE(0x303C, 0x1F5, 0xAAAA);
  1156. extern pascal OSErr ConvertFileToMovieFile(const FSSpec *inputFile, const FSSpec *outputFile, OSType creator, ScriptCode scriptTag, short *resID, long flags, ComponentInstance userComp, MovieProgressUPP proc, long refCon)
  1157.  THREEWORDINLINE(0x303C, 0x1CB, 0xAAAA);
  1158. extern pascal OSErr ConvertMovieToFile(Movie theMovie, Track onlyTrack, FSSpec *outputFile, OSType fileType, OSType creator, ScriptCode scriptTag, short *resID, long flags, ComponentInstance userComp)
  1159.  THREEWORDINLINE(0x303C, 0x1CC, 0xAAAA);
  1160. extern pascal TimeValue TrackTimeToMediaTime(TimeValue value, Track theTrack)
  1161.  THREEWORDINLINE(0x303C, 0x96, 0xAAAA);
  1162. extern pascal Fixed GetTrackEditRate(Track theTrack, TimeValue atTime)
  1163.  THREEWORDINLINE(0x303C, 0x123, 0xAAAA);
  1164. extern pascal long GetMovieDataSize(Movie theMovie, TimeValue startTime, TimeValue duration)
  1165.  THREEWORDINLINE(0x303C, 0x98, 0xAAAA);
  1166. extern pascal long GetTrackDataSize(Track theTrack, TimeValue startTime, TimeValue duration)
  1167.  THREEWORDINLINE(0x303C, 0x149, 0xAAAA);
  1168. extern pascal long GetMediaDataSize(Media theMedia, TimeValue startTime, TimeValue duration)
  1169.  THREEWORDINLINE(0x303C, 0x99, 0xAAAA);
  1170. extern pascal Boolean PtInMovie(Movie theMovie, Point pt)
  1171.  THREEWORDINLINE(0x303C, 0x9A, 0xAAAA);
  1172. extern pascal Boolean PtInTrack(Track theTrack, Point pt)
  1173.  THREEWORDINLINE(0x303C, 0x9B, 0xAAAA);
  1174. extern pascal void SetMovieLanguage(Movie theMovie, long language)
  1175.  THREEWORDINLINE(0x303C, 0x9C, 0xAAAA);
  1176. extern pascal OSErr GetUserData(UserData theUserData, Handle data, OSType udType, long index)
  1177.  THREEWORDINLINE(0x303C, 0x9E, 0xAAAA);
  1178. extern pascal OSErr AddUserData(UserData theUserData, Handle data, OSType udType)
  1179.  THREEWORDINLINE(0x303C, 0x9F, 0xAAAA);
  1180. extern pascal OSErr RemoveUserData(UserData theUserData, OSType udType, long index)
  1181.  THREEWORDINLINE(0x303C, 0xA0, 0xAAAA);
  1182. extern pascal short CountUserDataType(UserData theUserData, OSType udType)
  1183.  THREEWORDINLINE(0x303C, 0x14B, 0xAAAA);
  1184. extern pascal long GetNextUserDataType(UserData theUserData, OSType udType)
  1185.  THREEWORDINLINE(0x303C, 0x1A5, 0xAAAA);
  1186. extern pascal OSErr GetUserDataItem(UserData theUserData, void *data, long size, OSType udType, long index)
  1187.  THREEWORDINLINE(0x303C, 0x126, 0xAAAA);
  1188. extern pascal OSErr SetUserDataItem(UserData theUserData, void *data, long size, OSType udType, long index)
  1189.  THREEWORDINLINE(0x303C, 0x12E, 0xAAAA);
  1190. extern pascal OSErr AddUserDataText(UserData theUserData, Handle data, OSType udType, long index, short itlRegionTag)
  1191.  THREEWORDINLINE(0x303C, 0x14C, 0xAAAA);
  1192. extern pascal OSErr GetUserDataText(UserData theUserData, Handle data, OSType udType, long index, short itlRegionTag)
  1193.  THREEWORDINLINE(0x303C, 0x14D, 0xAAAA);
  1194. extern pascal OSErr RemoveUserDataText(UserData theUserData, OSType udType, long index, short itlRegionTag)
  1195.  THREEWORDINLINE(0x303C, 0x14E, 0xAAAA);
  1196. extern pascal OSErr NewUserData(UserData *theUserData)
  1197.  THREEWORDINLINE(0x303C, 0x12F, 0xAAAA);
  1198. extern pascal OSErr DisposeUserData(UserData theUserData)
  1199.  THREEWORDINLINE(0x303C, 0x130, 0xAAAA);
  1200. extern pascal OSErr NewUserDataFromHandle(Handle h, UserData *theUserData)
  1201.  THREEWORDINLINE(0x303C, 0x131, 0xAAAA);
  1202. extern pascal OSErr PutUserDataIntoHandle(UserData theUserData, Handle h)
  1203.  THREEWORDINLINE(0x303C, 0x132, 0xAAAA);
  1204. extern pascal void GetMediaNextInterestingTime(Media theMedia, short interestingTimeFlags, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration)
  1205.  THREEWORDINLINE(0x303C, 0x16D, 0xAAAA);
  1206. extern pascal void GetTrackNextInterestingTime(Track theTrack, short interestingTimeFlags, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration)
  1207.  THREEWORDINLINE(0x303C, 0xE2, 0xAAAA);
  1208. extern pascal void GetMovieNextInterestingTime(Movie theMovie, short interestingTimeFlags, short numMediaTypes, const OSType *whichMediaTypes, TimeValue time, Fixed rate, TimeValue *interestingTime, TimeValue *interestingDuration)
  1209.  THREEWORDINLINE(0x303C, 0x10E, 0xAAAA);
  1210. extern pascal OSErr CreateMovieFile(const FSSpec *fileSpec, OSType creator, ScriptCode scriptTag, long createMovieFileFlags, short *resRefNum, Movie *newmovie)
  1211.  THREEWORDINLINE(0x303C, 0x191, 0xAAAA);
  1212. extern pascal OSErr OpenMovieFile(const FSSpec *fileSpec, short *resRefNum, char perms)
  1213.  THREEWORDINLINE(0x303C, 0x192, 0xAAAA);
  1214. extern pascal OSErr CloseMovieFile(short resRefNum)
  1215.  THREEWORDINLINE(0x303C, 0xD5, 0xAAAA);
  1216. extern pascal OSErr DeleteMovieFile(const FSSpec *fileSpec)
  1217.  THREEWORDINLINE(0x303C, 0x175, 0xAAAA);
  1218. extern pascal OSErr NewMovieFromFile(Movie *theMovie, short resRefNum, short *resId, StringPtr resName, short newMovieFlags, Boolean *dataRefWasChanged)
  1219.  THREEWORDINLINE(0x303C, 0xF0, 0xAAAA);
  1220. extern pascal OSErr NewMovieFromHandle(Movie *theMovie, Handle h, short newMovieFlags, Boolean *dataRefWasChanged)
  1221.  THREEWORDINLINE(0x303C, 0xF1, 0xAAAA);
  1222. extern pascal OSErr NewMovieFromDataFork(Movie *theMovie, short fRefNum, long fileOffset, short newMovieFlags, Boolean *dataRefWasChanged)
  1223.  THREEWORDINLINE(0x303C, 0x1B3, 0xAAAA);
  1224. extern pascal OSErr NewMovieFromUserProc(Movie *m, short flags, Boolean *dataRefWasChanged, GetMovieUPP getProc, void *refCon, Handle defaultDataRef, OSType dataRefType)
  1225.  THREEWORDINLINE(0x303C, 0x1EC, 0xAAAA);
  1226. extern pascal OSErr AddMovieResource(Movie theMovie, short resRefNum, short *resId, const StringPtr resName)
  1227.  THREEWORDINLINE(0x303C, 0xD7, 0xAAAA);
  1228. extern pascal OSErr UpdateMovieResource(Movie theMovie, short resRefNum, short resId, const StringPtr resName)
  1229.  THREEWORDINLINE(0x303C, 0xD8, 0xAAAA);
  1230. extern pascal OSErr RemoveMovieResource(short resRefNum, short resId)
  1231.  THREEWORDINLINE(0x303C, 0x176, 0xAAAA);
  1232. extern pascal Boolean HasMovieChanged(Movie theMovie)
  1233.  THREEWORDINLINE(0x303C, 0xD9, 0xAAAA);
  1234. extern pascal void ClearMovieChanged(Movie theMovie)
  1235.  THREEWORDINLINE(0x303C, 0x113, 0xAAAA);
  1236. extern pascal OSErr SetMovieDefaultDataRef(Movie theMovie, Handle dataRef, OSType dataRefType)
  1237.  THREEWORDINLINE(0x303C, 0x1C1, 0xAAAA);
  1238. extern pascal OSErr GetMovieDefaultDataRef(Movie theMovie, Handle *dataRef, OSType *dataRefType)
  1239.  THREEWORDINLINE(0x303C, 0x1D2, 0xAAAA);
  1240. extern pascal OSErr SetMovieColorTable(Movie theMovie, CTabHandle ctab)
  1241.  THREEWORDINLINE(0x303C, 0x205, 0xAAAA);
  1242. extern pascal OSErr GetMovieColorTable(Movie theMovie, CTabHandle *ctab)
  1243.  THREEWORDINLINE(0x303C, 0x206, 0xAAAA);
  1244. extern pascal void FlattenMovie(Movie theMovie, long movieFlattenFlags, const FSSpec *theFile, OSType creator, ScriptCode scriptTag, long createMovieFileFlags, short *resId, const StringPtr resName)
  1245.  THREEWORDINLINE(0x303C, 0x19B, 0xAAAA);
  1246. extern pascal Movie FlattenMovieData(Movie theMovie, long movieFlattenFlags, const FSSpec *theFile, OSType creator, ScriptCode scriptTag, long createMovieFileFlags)
  1247.  THREEWORDINLINE(0x303C, 0x19C, 0xAAAA);
  1248. extern pascal void SetMovieProgressProc(Movie theMovie, MovieProgressUPP p, long refcon)
  1249.  THREEWORDINLINE(0x303C, 0x19A, 0xAAAA);
  1250. extern pascal HandlerError GetVideoMediaGraphicsMode(MediaHandler mh, long *graphicsMode, RGBColor *opColor)
  1251.  FIVEWORDINLINE(0x2F3C, 0x8, 0x101, 0x7000, 0xA82A);
  1252. extern pascal HandlerError SetVideoMediaGraphicsMode(MediaHandler mh, long graphicsMode, const RGBColor *opColor)
  1253.  FIVEWORDINLINE(0x2F3C, 0x8, 0x102, 0x7000, 0xA82A);
  1254. extern pascal HandlerError GetSoundMediaBalance(MediaHandler mh, short *balance)
  1255.  FIVEWORDINLINE(0x2F3C, 0x4, 0x101, 0x7000, 0xA82A);
  1256. extern pascal HandlerError SetSoundMediaBalance(MediaHandler mh, short balance)
  1257.  FIVEWORDINLINE(0x2F3C, 0x2, 0x102, 0x7000, 0xA82A);
  1258. enum  {
  1259.     txtProcDefaultDisplay        = 0,
  1260.     txtProcDontDisplay            = 1,
  1261.     txtProcDoDisplay            = 2
  1262. };
  1263.  
  1264. typedef pascal OSErr (*TextMediaProcPtr)(Handle theText, Movie theMovie, short *displayFlag, long refcon);
  1265.  
  1266. enum {
  1267.     uppTextMediaProcInfo = kPascalStackBased
  1268.          | RESULT_SIZE(SIZE_CODE(sizeof(OSErr)))
  1269.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(Handle)))
  1270.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(Movie)))
  1271.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(short*)))
  1272.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  1273. };
  1274.  
  1275. #if USESROUTINEDESCRIPTORS
  1276. typedef UniversalProcPtr TextMediaUPP;
  1277.  
  1278. #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon)        \
  1279.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppTextMediaProcInfo, (theText), (theMovie), (displayFlag), (refcon))
  1280. #define NewTextMediaProc(userRoutine)        \
  1281.         (TextMediaUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppTextMediaProcInfo, GetCurrentISA())
  1282. #else
  1283. typedef TextMediaProcPtr TextMediaUPP;
  1284.  
  1285. #define CallTextMediaProc(userRoutine, theText, theMovie, displayFlag, refcon)        \
  1286.         (*(userRoutine))((theText), (theMovie), (displayFlag), (refcon))
  1287. #define NewTextMediaProc(userRoutine)        \
  1288.         (TextMediaUPP)(userRoutine)
  1289. #endif
  1290.  
  1291. extern pascal ComponentResult SetTextProc(MediaHandler mh, TextMediaUPP TextProc, long refcon)
  1292.  FIVEWORDINLINE(0x2F3C, 0x8, 0x101, 0x7000, 0xA82A);
  1293. extern pascal ComponentResult AddTextSample(MediaHandler mh, Ptr text, unsigned long size, short fontNumber, short fontSize, Style textFace, RGBColor *textColor, RGBColor *backColor, short textJustification, Rect *textBox, long displayFlags, TimeValue scrollDelay, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime)
  1294.  FIVEWORDINLINE(0x2F3C, 0x34, 0x102, 0x7000, 0xA82A);
  1295. extern pascal ComponentResult AddTESample(MediaHandler mh, TEHandle hTE, RGBColor *backColor, short textJustification, Rect *textBox, long displayFlags, TimeValue scrollDelay, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime)
  1296.  FIVEWORDINLINE(0x2F3C, 0x26, 0x103, 0x7000, 0xA82A);
  1297. extern pascal ComponentResult AddHiliteSample(MediaHandler mh, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor, TimeValue duration, TimeValue *sampleTime)
  1298.  FIVEWORDINLINE(0x2F3C, 0x10, 0x104, 0x7000, 0xA82A);
  1299. enum  {
  1300.     findTextEdgeOK                = 1 << 0,
  1301.     findTextCaseSensitive        = 1 << 1,
  1302.     findTextReverseSearch        = 1 << 2,
  1303.     findTextWrapAround            = 1 << 3,
  1304.     findTextUseOffset            = 1 << 4
  1305. };
  1306.  
  1307. extern pascal ComponentResult FindNextText(MediaHandler mh, Ptr text, long size, short findFlags, TimeValue startTime, TimeValue *foundTime, TimeValue *foundDuration, long *offset)
  1308.  FIVEWORDINLINE(0x2F3C, 0x1A, 0x105, 0x7000, 0xA82A);
  1309. extern pascal ComponentResult HiliteTextSample(MediaHandler mh, TimeValue sampleTime, short hiliteStart, short hiliteEnd, RGBColor *rgbHiliteColor)
  1310.  FIVEWORDINLINE(0x2F3C, 0xC, 0x106, 0x7000, 0xA82A);
  1311. #define dropShadowOffsetType 'drpo'
  1312.  
  1313. #define dropShadowTranslucencyType 'drpt'
  1314.  
  1315. extern pascal ComponentResult SetTextSampleData(MediaHandler mh, void *data, OSType dataType)
  1316.  FIVEWORDINLINE(0x2F3C, 0x8, 0x107, 0x7000, 0xA82A);
  1317. extern pascal OSErr MovieSearchText(Movie theMovie, Ptr text, long size, long searchFlags, Track *searchTrack, TimeValue *searchTime, long *searchOffset)
  1318.  THREEWORDINLINE(0x303C, 0x207, 0xAAAA);
  1319. extern pascal void GetPosterBox(Movie theMovie, Rect *boxRect)
  1320.  THREEWORDINLINE(0x303C, 0x16F, 0xAAAA);
  1321. extern pascal void SetPosterBox(Movie theMovie, const Rect *boxRect)
  1322.  THREEWORDINLINE(0x303C, 0x170, 0xAAAA);
  1323. extern pascal RgnHandle GetMovieSegmentDisplayBoundsRgn(Movie theMovie, TimeValue time, TimeValue duration)
  1324.  THREEWORDINLINE(0x303C, 0x16C, 0xAAAA);
  1325. extern pascal RgnHandle GetTrackSegmentDisplayBoundsRgn(Track theTrack, TimeValue time, TimeValue duration)
  1326.  THREEWORDINLINE(0x303C, 0x16B, 0xAAAA);
  1327. extern pascal void SetMovieCoverProcs(Movie theMovie, MovieRgnCoverUPP uncoverProc, MovieRgnCoverUPP coverProc, long refcon)
  1328.  THREEWORDINLINE(0x303C, 0x179, 0xAAAA);
  1329. extern pascal OSErr GetMovieCoverProcs(Movie theMovie, MovieRgnCoverUPP *uncoverProc, MovieRgnCoverUPP *coverProc, long *refcon)
  1330.  THREEWORDINLINE(0x303C, 0x1DD, 0xAAAA);
  1331. extern pascal ComponentResult GetTrackStatus(Track theTrack)
  1332.  THREEWORDINLINE(0x303C, 0x172, 0xAAAA);
  1333. extern pascal ComponentResult GetMovieStatus(Movie theMovie, Track *firstProblemTrack)
  1334.  THREEWORDINLINE(0x303C, 0x173, 0xAAAA);
  1335. extern pascal ComponentInstance NewMovieController(Movie theMovie, const Rect *movieRect, long someFlags)
  1336.  THREEWORDINLINE(0x303C, 0x18A, 0xAAAA);
  1337. extern pascal void DisposeMovieController(ComponentInstance mc)
  1338.  THREEWORDINLINE(0x303C, 0x18B, 0xAAAA);
  1339. extern pascal void ShowMovieInformation(Movie theMovie, ModalFilterUPP filterProc, long refCon)
  1340.  THREEWORDINLINE(0x303C, 0x209, 0xAAAA);
  1341. extern pascal OSErr PutMovieOnScrap(Movie theMovie, long movieScrapFlags)
  1342.  THREEWORDINLINE(0x303C, 0x18C, 0xAAAA);
  1343. extern pascal Movie NewMovieFromScrap(long newMovieFlags)
  1344.  THREEWORDINLINE(0x303C, 0x18D, 0xAAAA);
  1345. extern pascal OSErr GetMediaDataRef(Media theMedia, short index, Handle *dataRef, OSType *dataRefType, long *dataRefAttributes)
  1346.  THREEWORDINLINE(0x303C, 0x197, 0xAAAA);
  1347. extern pascal OSErr SetMediaDataRef(Media theMedia, short index, Handle dataRef, OSType dataRefType)
  1348.  THREEWORDINLINE(0x303C, 0x1C9, 0xAAAA);
  1349. extern pascal OSErr SetMediaDataRefAttributes(Media theMedia, short index, long dataRefAttributes)
  1350.  THREEWORDINLINE(0x303C, 0x1CA, 0xAAAA);
  1351. extern pascal OSErr AddMediaDataRef(Media theMedia, short *index, Handle dataRef, OSType dataRefType)
  1352.  THREEWORDINLINE(0x303C, 0x198, 0xAAAA);
  1353. extern pascal OSErr GetMediaDataRefCount(Media theMedia, short *count)
  1354.  THREEWORDINLINE(0x303C, 0x199, 0xAAAA);
  1355. extern pascal void SetMoviePlayHints(Movie theMovie, long flags, long flagsMask)
  1356.  THREEWORDINLINE(0x303C, 0x1A1, 0xAAAA);
  1357. extern pascal void SetMediaPlayHints(Media theMedia, long flags, long flagsMask)
  1358.  THREEWORDINLINE(0x303C, 0x1A2, 0xAAAA);
  1359. enum  {
  1360.     preloadAlways                = 1L << 0,
  1361.     preloadOnlyIfEnabled        = 1L << 1
  1362. };
  1363.  
  1364. extern pascal void SetTrackLoadSettings(Track theTrack, TimeValue preloadTime, TimeValue preloadDuration, long preloadFlags, long defaultHints)
  1365.  THREEWORDINLINE(0x303C, 0x1E3, 0xAAAA);
  1366. extern pascal void GetTrackLoadSettings(Track theTrack, TimeValue *preloadTime, TimeValue *preloadDuration, long *preloadFlags, long *defaultHints)
  1367.  THREEWORDINLINE(0x303C, 0x1E4, 0xAAAA);
  1368. #ifdef __cplusplus
  1369. }
  1370. #endif
  1371.  
  1372. enum  {
  1373.     samplesAlreadyInMedia        = -2059
  1374. };
  1375.  
  1376. #define MovieControllerComponentType 'play'
  1377.  
  1378. typedef ComponentInstance MovieController;
  1379.  
  1380. enum  {
  1381.     mcActionIdle                = 1,
  1382.     mcActionDraw                = 2,
  1383.     mcActionActivate            = 3,
  1384.     mcActionDeactivate            = 4,
  1385.     mcActionMouseDown            = 5,
  1386.     mcActionKey                    = 6,
  1387.     mcActionPlay                = 8,
  1388.     mcActionGoToTime            = 12,
  1389.     mcActionSetVolume            = 14,
  1390.     mcActionGetVolume            = 15,
  1391.     mcActionStep                = 18,
  1392.     mcActionSetLooping            = 21,
  1393.     mcActionGetLooping            = 22,
  1394.     mcActionSetLoopIsPalindrome    = 23,
  1395.     mcActionGetLoopIsPalindrome    = 24,
  1396.     mcActionSetGrowBoxBounds    = 25,
  1397.     mcActionControllerSizeChanged = 26,
  1398.     mcActionSetSelectionBegin    = 29,
  1399.     mcActionSetSelectionDuration = 30,
  1400.     mcActionSetKeysEnabled        = 32,
  1401.     mcActionGetKeysEnabled        = 33,
  1402.     mcActionSetPlaySelection    = 34,
  1403.     mcActionGetPlaySelection    = 35,
  1404.     mcActionSetUseBadge            = 36,
  1405.     mcActionGetUseBadge            = 37,
  1406.     mcActionSetFlags            = 38,
  1407.     mcActionGetFlags            = 39,
  1408.     mcActionSetPlayEveryFrame    = 40,
  1409.     mcActionGetPlayEveryFrame    = 41,
  1410.     mcActionGetPlayRate            = 42,
  1411.     mcActionShowBalloon            = 43,
  1412.     mcActionBadgeClick            = 44,
  1413.     mcActionMovieClick            = 45,
  1414.     mcActionSuspend                = 46,
  1415.     mcActionResume                = 47,
  1416.     mcActionSetControllerKeysEnabled = 48,
  1417.     mcActionGetTimeSliderRect    = 49,
  1418.     mcActionMovieEdited            = 50
  1419. };
  1420.  
  1421. typedef short mcAction;
  1422.  
  1423. enum  {
  1424.     mcFlagSuppressMovieFrame    = 1 << 0,
  1425.     mcFlagSuppressStepButtons    = 1 << 1,
  1426.     mcFlagSuppressSpeakerButton    = 1 << 2,
  1427.     mcFlagsUseWindowPalette        = 1 << 3,
  1428.     mcFlagsDontInvalidate        = 1 << 4
  1429. };
  1430.  
  1431. enum  {
  1432.     mcPositionDontInvalidate    = 1 << 5
  1433. };
  1434.  
  1435. typedef unsigned long mcFlags;
  1436.  
  1437. typedef pascal Boolean (*MCActionFilterProcPtr)(MovieController mc, short *action, void *params);
  1438.  
  1439. enum {
  1440.     uppMCActionFilterProcInfo = kPascalStackBased
  1441.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  1442.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MovieController)))
  1443.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short*)))
  1444.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*)))
  1445. };
  1446.  
  1447. #if USESROUTINEDESCRIPTORS
  1448. typedef UniversalProcPtr MCActionFilterUPP;
  1449.  
  1450. #define CallMCActionFilterProc(userRoutine, mc, action, params)        \
  1451.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMCActionFilterProcInfo, (mc), (action), (params))
  1452. #define NewMCActionFilterProc(userRoutine)        \
  1453.         (MCActionFilterUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterProcInfo, GetCurrentISA())
  1454. #else
  1455. typedef MCActionFilterProcPtr MCActionFilterUPP;
  1456.  
  1457. #define CallMCActionFilterProc(userRoutine, mc, action, params)        \
  1458.         (*(userRoutine))((mc), (action), (params))
  1459. #define NewMCActionFilterProc(userRoutine)        \
  1460.         (MCActionFilterUPP)(userRoutine)
  1461. #endif
  1462.  
  1463. typedef pascal Boolean (*MCActionFilterWithRefConProcPtr)(MovieController mc, short action, void *params, long refCon);
  1464.  
  1465. enum {
  1466.     uppMCActionFilterWithRefConProcInfo = kPascalStackBased
  1467.          | RESULT_SIZE(SIZE_CODE(sizeof(Boolean)))
  1468.          | STACK_ROUTINE_PARAMETER(1, SIZE_CODE(sizeof(MovieController)))
  1469.          | STACK_ROUTINE_PARAMETER(2, SIZE_CODE(sizeof(short)))
  1470.          | STACK_ROUTINE_PARAMETER(3, SIZE_CODE(sizeof(void*)))
  1471.          | STACK_ROUTINE_PARAMETER(4, SIZE_CODE(sizeof(long)))
  1472. };
  1473.  
  1474. #if USESROUTINEDESCRIPTORS
  1475. typedef UniversalProcPtr MCActionFilterWithRefConUPP;
  1476.  
  1477. #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon)        \
  1478.         CallUniversalProc((UniversalProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, (mc), (action), (params), (refCon))
  1479. #define NewMCActionFilterWithRefConProc(userRoutine)        \
  1480.         (MCActionFilterWithRefConUPP) NewRoutineDescriptor((ProcPtr)(userRoutine), uppMCActionFilterWithRefConProcInfo, GetCurrentISA())
  1481. #else
  1482. typedef MCActionFilterWithRefConProcPtr MCActionFilterWithRefConUPP;
  1483.  
  1484. #define CallMCActionFilterWithRefConProc(userRoutine, mc, action, params, refCon)        \
  1485.         (*(userRoutine))((mc), (action), (params), (refCon))
  1486. #define NewMCActionFilterWithRefConProc(userRoutine)        \
  1487.         (MCActionFilterWithRefConUPP)(userRoutine)
  1488. #endif
  1489.  
  1490. enum  {
  1491.     mcInfoUndoAvailable            = 1 << 0,
  1492.     mcInfoCutAvailable            = 1 << 1,
  1493.     mcInfoCopyAvailable            = 1 << 2,
  1494.     mcInfoPasteAvailable        = 1 << 3,
  1495.     mcInfoClearAvailable        = 1 << 4,
  1496.     mcInfoHasSound                = 1 << 5,
  1497.     mcInfoIsPlaying                = 1 << 6,
  1498.     mcInfoIsLooping                = 1 << 7,
  1499.     mcInfoIsInPalindrome        = 1 << 8,
  1500.     mcInfoEditingEnabled        = 1 << 9
  1501. };
  1502.  
  1503. enum  {
  1504.     mcMenuUndo                    = 1,
  1505.     mcMenuCut                    = 3,
  1506.     mcMenuCopy                    = 4,
  1507.     mcMenuPaste                    = 5,
  1508.     mcMenuClear                    = 6
  1509. };
  1510.  
  1511. #ifdef __cplusplus
  1512. extern "C" {
  1513. #endif
  1514.  
  1515. extern pascal ComponentResult MCSetMovie(MovieController mc, Movie theMovie, WindowPtr movieWindow, Point where)
  1516.  FIVEWORDINLINE(0x2F3C, 0xC, 0x2, 0x7000, 0xA82A);
  1517. extern pascal Movie MCGetIndMovie(MovieController mc, short index)
  1518.  FIVEWORDINLINE(0x2F3C, 0x2, 0x5, 0x7000, 0xA82A);
  1519. #define MCGetMovie(mc) MCGetIndMovie(mc, 0)
  1520.  
  1521. extern pascal ComponentResult MCRemoveMovie(MovieController mc)
  1522.  FIVEWORDINLINE(0x2F3C, 0, 0x6, 0x7000, 0xA82A);
  1523. extern pascal ComponentResult MCIsPlayerEvent(MovieController mc, const EventRecord *e)
  1524.  FIVEWORDINLINE(0x2F3C, 0x4, 0x7, 0x7000, 0xA82A);
  1525. extern pascal ComponentResult MCSetActionFilter(MovieController mc, MCActionFilterUPP blob)
  1526.  FIVEWORDINLINE(0x2F3C, 0x4, 0x8, 0x7000, 0xA82A);
  1527. extern pascal ComponentResult MCDoAction(MovieController mc, short action, void *params)
  1528.  FIVEWORDINLINE(0x2F3C, 0x6, 0x9, 0x7000, 0xA82A);
  1529. extern pascal ComponentResult MCSetControllerAttached(MovieController mc, Boolean attach)
  1530.  FIVEWORDINLINE(0x2F3C, 0x2, 0xA, 0x7000, 0xA82A);
  1531. extern pascal ComponentResult MCIsControllerAttached(MovieController mc)
  1532.  FIVEWORDINLINE(0x2F3C, 0, 0xB, 0x7000, 0xA82A);
  1533. extern pascal ComponentResult MCSetControllerPort(MovieController mc, CGrafPtr gp)
  1534.  FIVEWORDINLINE(0x2F3C, 0x4, 0xC, 0x7000, 0xA82A);
  1535. extern pascal CGrafPtr MCGetControllerPort(MovieController mc)
  1536.  FIVEWORDINLINE(0x2F3C, 0, 0xD, 0x7000, 0xA82A);
  1537. extern pascal ComponentResult MCSetVisible(MovieController mc, Boolean visible)
  1538.  FIVEWORDINLINE(0x2F3C, 0x2, 0xE, 0x7000, 0xA82A);
  1539. extern pascal ComponentResult MCGetVisible(MovieController mc)
  1540.  FIVEWORDINLINE(0x2F3C, 0, 0xF, 0x7000, 0xA82A);
  1541. extern pascal ComponentResult MCGetControllerBoundsRect(MovieController mc, Rect *bounds)
  1542.  FIVEWORDINLINE(0x2F3C, 0x4, 0x10, 0x7000, 0xA82A);
  1543. extern pascal ComponentResult MCSetControllerBoundsRect(MovieController mc, const Rect *bounds)
  1544.  FIVEWORDINLINE(0x2F3C, 0x4, 0x11, 0x7000, 0xA82A);
  1545. extern pascal RgnHandle MCGetControllerBoundsRgn(MovieController mc)
  1546.  FIVEWORDINLINE(0x2F3C, 0, 0x12, 0x7000, 0xA82A);
  1547. extern pascal RgnHandle MCGetWindowRgn(MovieController mc, WindowPtr w)
  1548.  FIVEWORDINLINE(0x2F3C, 0x4, 0x13, 0x7000, 0xA82A);
  1549. extern pascal ComponentResult MCMovieChanged(MovieController mc, Movie m)
  1550.  FIVEWORDINLINE(0x2F3C, 0x4, 0x14, 0x7000, 0xA82A);
  1551. extern pascal ComponentResult MCSetDuration(MovieController mc, TimeValue duration)
  1552.  FIVEWORDINLINE(0x2F3C, 0x4, 0x15, 0x7000, 0xA82A);
  1553. extern pascal TimeValue MCGetCurrentTime(MovieController mc, TimeScale *scale)
  1554.  FIVEWORDINLINE(0x2F3C, 0x4, 0x16, 0x7000, 0xA82A);
  1555. extern pascal ComponentResult MCNewAttachedController(MovieController mc, Movie theMovie, WindowPtr w, Point where)
  1556.  FIVEWORDINLINE(0x2F3C, 0xC, 0x17, 0x7000, 0xA82A);
  1557. extern pascal ComponentResult MCDraw(MovieController mc, WindowPtr w)
  1558.  FIVEWORDINLINE(0x2F3C, 0x4, 0x18, 0x7000, 0xA82A);
  1559. extern pascal ComponentResult MCActivate(MovieController mc, WindowPtr w, Boolean activate)
  1560.  FIVEWORDINLINE(0x2F3C, 0x6, 0x19, 0x7000, 0xA82A);
  1561. extern pascal ComponentResult MCIdle(MovieController mc)
  1562.  FIVEWORDINLINE(0x2F3C, 0, 0x1A, 0x7000, 0xA82A);
  1563. extern pascal ComponentResult MCKey(MovieController mc, char key, long modifiers)
  1564.  FIVEWORDINLINE(0x2F3C, 0x6, 0x1B, 0x7000, 0xA82A);
  1565. extern pascal ComponentResult MCClick(MovieController mc, WindowPtr w, Point where, long when, long modifiers)
  1566.  FIVEWORDINLINE(0x2F3C, 0x10, 0x1C, 0x7000, 0xA82A);
  1567. extern pascal ComponentResult MCEnableEditing(MovieController mc, Boolean enabled)
  1568.  FIVEWORDINLINE(0x2F3C, 0x2, 0x1D, 0x7000, 0xA82A);
  1569. extern pascal long MCIsEditingEnabled(MovieController mc)
  1570.  FIVEWORDINLINE(0x2F3C, 0, 0x1E, 0x7000, 0xA82A);
  1571. extern pascal Movie MCCopy(MovieController mc)
  1572.  FIVEWORDINLINE(0x2F3C, 0, 0x1F, 0x7000, 0xA82A);
  1573. extern pascal Movie MCCut(MovieController mc)
  1574.  FIVEWORDINLINE(0x2F3C, 0, 0x20, 0x7000, 0xA82A);
  1575. extern pascal ComponentResult MCPaste(MovieController mc, Movie srcMovie)
  1576.  FIVEWORDINLINE(0x2F3C, 0x4, 0x21, 0x7000, 0xA82A);
  1577. extern pascal ComponentResult MCClear(MovieController mc)
  1578.  FIVEWORDINLINE(0x2F3C, 0, 0x22, 0x7000, 0xA82A);
  1579. extern pascal ComponentResult MCUndo(MovieController mc)
  1580.  FIVEWORDINLINE(0x2F3C, 0, 0x23, 0x7000, 0xA82A);
  1581. extern pascal ComponentResult MCPositionController(MovieController mc, const Rect *movieRect, const Rect *controllerRect, long someFlags)
  1582.  FIVEWORDINLINE(0x2F3C, 0xC, 0x24, 0x7000, 0xA82A);
  1583. extern pascal ComponentResult MCGetControllerInfo(MovieController mc, long *someFlags)
  1584.  FIVEWORDINLINE(0x2F3C, 0x4, 0x25, 0x7000, 0xA82A);
  1585. extern pascal ComponentResult MCSetClip(MovieController mc, RgnHandle theClip, RgnHandle movieClip)
  1586.  FIVEWORDINLINE(0x2F3C, 0x8, 0x28, 0x7000, 0xA82A);
  1587. extern pascal ComponentResult MCGetClip(MovieController mc, RgnHandle *theClip, RgnHandle *movieClip)
  1588.  FIVEWORDINLINE(0x2F3C, 0x8, 0x29, 0x7000, 0xA82A);
  1589. extern pascal ComponentResult MCDrawBadge(MovieController mc, RgnHandle movieRgn, RgnHandle *badgeRgn)
  1590.  FIVEWORDINLINE(0x2F3C, 0x8, 0x2A, 0x7000, 0xA82A);
  1591. extern pascal ComponentResult MCSetUpEditMenu(MovieController mc, long modifiers, MenuHandle mh)
  1592.  FIVEWORDINLINE(0x2F3C, 0x8, 0x2B, 0x7000, 0xA82A);
  1593. extern pascal ComponentResult MCGetMenuString(MovieController mc, long modifiers, short item, Str255 aString)
  1594.  FIVEWORDINLINE(0x2F3C, 0xA, 0x2C, 0x7000, 0xA82A);
  1595. extern pascal ComponentResult MCSetActionFilterWithRefCon(MovieController mc, MCActionFilterWithRefConUPP blob, long refCon)
  1596.  FIVEWORDINLINE(0x2F3C, 0x8, 0x2D, 0x7000, 0xA82A);
  1597. #ifdef __cplusplus
  1598. }
  1599. #endif
  1600.  
  1601. enum  {
  1602.     kMCSetMovieSelect            = 0x2,
  1603.     kMCGetIndMovieSelect        = 0x5,
  1604.     kMCRemoveMovieSelect        = 0x6,
  1605.     kMCIsPlayerEventSelect        = 0x7,
  1606.     kMCSetActionFilterSelect    = 0x8,
  1607.     kMCDoActionSelect            = 0x9,
  1608.     kMCSetControllerAttachedSelect = 0xA,
  1609.     kMCIsControllerAttachedSelect = 0xB,
  1610.     kMCSetControllerPortSelect    = 0xC,
  1611.     kMCGetControllerPortSelect    = 0xD,
  1612.     kMCSetVisibleSelect            = 0xE,
  1613.     kMCGetVisibleSelect            = 0xF,
  1614.     kMCGetControllerBoundsRectSelect = 0x10,
  1615.     kMCSetControllerBoundsRectSelect = 0x11,
  1616.     kMCGetControllerBoundsRgnSelect = 0x12,
  1617.     kMCGetWindowRgnSelect        = 0x13,
  1618.     kMCMovieChangedSelect        = 0x14,
  1619.     kMCSetDurationSelect        = 0x15,
  1620.     kMCGetCurrentTimeSelect        = 0x16,
  1621.     kMCNewAttachedControllerSelect = 0x17,
  1622.     kMCDrawSelect                = 0x18,
  1623.     kMCActivateSelect            = 0x19,
  1624.     kMCIdleSelect                = 0x1A,
  1625.     kMCKeySelect                = 0x1B,
  1626.     kMCClickSelect                = 0x1C,
  1627.     kMCEnableEditingSelect        = 0x1D,
  1628.     kMCIsEditingEnabledSelect    = 0x1E,
  1629.     kMCCopySelect                = 0x1F,
  1630.     kMCCutSelect                = 0x20,
  1631.     kMCPasteSelect                = 0x21,
  1632.     kMCClearSelect                = 0x22,
  1633.     kMCUndoSelect                = 0x23,
  1634.     kMCPositionControllerSelect    = 0x24,
  1635.     kMCGetControllerInfoSelect    = 0x25,
  1636.     kMCSetClipSelect            = 0x28,
  1637.     kMCGetClipSelect            = 0x29,
  1638.     kMCDrawBadgeSelect            = 0x2A,
  1639.     kMCSetUpEditMenuSelect        = 0x2B,
  1640.     kMCGetMenuStringSelect        = 0x2C,
  1641.     kMCSetActionFilterWithRefConSelect = 0x2D
  1642. };
  1643.  
  1644. #ifdef __cplusplus
  1645. extern "C" {
  1646. #endif
  1647.  
  1648. extern pascal TimeBase NewTimeBase(void)
  1649.  THREEWORDINLINE(0x303C, 0xA5, 0xAAAA);
  1650. extern pascal void DisposeTimeBase(TimeBase tb)
  1651.  THREEWORDINLINE(0x303C, 0xB6, 0xAAAA);
  1652. extern pascal TimeValue GetTimeBaseTime(TimeBase tb, TimeScale s, TimeRecord *tr)
  1653.  THREEWORDINLINE(0x303C, 0xA6, 0xAAAA);
  1654. extern pascal void SetTimeBaseTime(TimeBase tb, const TimeRecord *tr)
  1655.  THREEWORDINLINE(0x303C, 0xA7, 0xAAAA);
  1656. extern pascal void SetTimeBaseValue(TimeBase tb, TimeValue t, TimeScale s)
  1657.  THREEWORDINLINE(0x303C, 0xA8, 0xAAAA);
  1658. extern pascal Fixed GetTimeBaseRate(TimeBase tb)
  1659.  THREEWORDINLINE(0x303C, 0xA9, 0xAAAA);
  1660. extern pascal void SetTimeBaseRate(TimeBase tb, Fixed r)
  1661.  THREEWORDINLINE(0x303C, 0xAA, 0xAAAA);
  1662. extern pascal TimeValue GetTimeBaseStartTime(TimeBase tb, TimeScale s, TimeRecord *tr)
  1663.  THREEWORDINLINE(0x303C, 0xAB, 0xAAAA);
  1664. extern pascal void SetTimeBaseStartTime(TimeBase tb, const TimeRecord *tr)
  1665.  THREEWORDINLINE(0x303C, 0xAC, 0xAAAA);
  1666. extern pascal TimeValue GetTimeBaseStopTime(TimeBase tb, TimeScale s, TimeRecord *tr)
  1667.  THREEWORDINLINE(0x303C, 0xAD, 0xAAAA);
  1668. extern pascal void SetTimeBaseStopTime(TimeBase tb, const TimeRecord *tr)
  1669.  THREEWORDINLINE(0x303C, 0xAE, 0xAAAA);
  1670. extern pascal long GetTimeBaseFlags(TimeBase tb)
  1671.  THREEWORDINLINE(0x303C, 0xB1, 0xAAAA);
  1672. extern pascal void SetTimeBaseFlags(TimeBase tb, long timeBaseFlags)
  1673.  THREEWORDINLINE(0x303C, 0xB2, 0xAAAA);
  1674. extern pascal void SetTimeBaseMasterTimeBase(TimeBase slave, TimeBase master, const TimeRecord *slaveZero)
  1675.  THREEWORDINLINE(0x303C, 0xB4, 0xAAAA);
  1676. extern pascal TimeBase GetTimeBaseMasterTimeBase(TimeBase tb)
  1677.  THREEWORDINLINE(0x303C, 0xAF, 0xAAAA);
  1678. extern pascal void SetTimeBaseMasterClock(TimeBase slave, Component clockMeister, const TimeRecord *slaveZero)
  1679.  THREEWORDINLINE(0x303C, 0xB3, 0xAAAA);
  1680. extern pascal ComponentInstance GetTimeBaseMasterClock(TimeBase tb)
  1681.  THREEWORDINLINE(0x303C, 0xB0, 0xAAAA);
  1682. extern pascal void ConvertTime(TimeRecord *inout, TimeBase newBase)
  1683.  THREEWORDINLINE(0x303C, 0xB5, 0xAAAA);
  1684. extern pascal void ConvertTimeScale(TimeRecord *inout, TimeScale newScale)
  1685.  THREEWORDINLINE(0x303C, 0xB7, 0xAAAA);
  1686. extern pascal void AddTime(TimeRecord *dst, const TimeRecord *src)
  1687.  THREEWORDINLINE(0x303C, 0x10C, 0xAAAA);
  1688. extern pascal void SubtractTime(TimeRecord *dst, const TimeRecord *src)
  1689.  THREEWORDINLINE(0x303C, 0x10D, 0xAAAA);
  1690. extern pascal long GetTimeBaseStatus(TimeBase tb, TimeRecord *unpinnedTime)
  1691.  THREEWORDINLINE(0x303C, 0x10B, 0xAAAA);
  1692. extern pascal void SetTimeBaseZero(TimeBase tb, TimeRecord *zero)
  1693.  THREEWORDINLINE(0x303C, 0x128, 0xAAAA);
  1694. extern pascal Fixed GetTimeBaseEffectiveRate(TimeBase tb)
  1695.  THREEWORDINLINE(0x303C, 0x124, 0xAAAA);
  1696. extern pascal QTCallBack NewCallBack(TimeBase tb, short cbType)
  1697.  THREEWORDINLINE(0x303C, 0xEB, 0xAAAA);
  1698. extern pascal void DisposeCallBack(QTCallBack cb)
  1699.  THREEWORDINLINE(0x303C, 0xEC, 0xAAAA);
  1700. extern pascal short GetCallBackType(QTCallBack cb)
  1701.  THREEWORDINLINE(0x303C, 0xED, 0xAAAA);
  1702. extern pascal TimeBase GetCallBackTimeBase(QTCallBack cb)
  1703.  THREEWORDINLINE(0x303C, 0xEE, 0xAAAA);
  1704. extern pascal OSErr CallMeWhen(QTCallBack cb, QTCallBackUPP callBackProc, long refCon, long param1, long param2, long param3)
  1705.  THREEWORDINLINE(0x303C, 0xB8, 0xAAAA);
  1706. extern pascal void CancelCallBack(QTCallBack cb)
  1707.  THREEWORDINLINE(0x303C, 0xB9, 0xAAAA);
  1708. extern pascal OSErr AddCallBackToTimeBase(QTCallBack cb)
  1709.  THREEWORDINLINE(0x303C, 0x129, 0xAAAA);
  1710. extern pascal OSErr RemoveCallBackFromTimeBase(QTCallBack cb)
  1711.  THREEWORDINLINE(0x303C, 0x12A, 0xAAAA);
  1712. extern pascal QTCallBack GetFirstCallBack(TimeBase tb)
  1713.  THREEWORDINLINE(0x303C, 0x12B, 0xAAAA);
  1714. extern pascal QTCallBack GetNextCallBack(QTCallBack cb)
  1715.  THREEWORDINLINE(0x303C, 0x12C, 0xAAAA);
  1716. extern pascal void ExecuteCallBack(QTCallBack cb)
  1717.  THREEWORDINLINE(0x303C, 0x12D, 0xAAAA);
  1718. extern pascal OSErr QueueSyncTask(QTSyncTaskPtr task)
  1719.  THREEWORDINLINE(0x303C, 0x203, 0xAAAA);
  1720. extern pascal OSErr DequeueSyncTask(QTSyncTaskPtr qElem)
  1721.  THREEWORDINLINE(0x303C, 0x204, 0xAAAA);
  1722. #ifdef __cplusplus
  1723. }
  1724. #endif
  1725.  
  1726. #if defined(powerc) || defined (__powerc)
  1727. #pragma options align=mac68k
  1728. #endif
  1729. struct MusicDescription {
  1730.     long                        size;
  1731.     long                        type;
  1732.     long                        resvd1;
  1733.     short                        resvd2;
  1734.     short                        dataRefIndex;
  1735.     long                        musicFlags;
  1736.     unsigned long                headerData[1];
  1737. };
  1738. #if defined(powerc) || defined(__powerc)
  1739. #pragma options align=reset
  1740. #endif
  1741.  
  1742. typedef struct MusicDescription MusicDescription;
  1743.  
  1744. typedef MusicDescription *MusicDescriptionPtr;
  1745.  
  1746. typedef MusicDescriptionPtr *MusicDescriptionHandle;
  1747.  
  1748. #endif
  1749.  
  1750.